<?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>136700</bug_id>
          
          <creation_ts>2014-09-10 04:08:11 -0700</creation_ts>
          <short_desc>[GTK] Merge WebKitAuthenticationWidget into WebKitAuthenticationDialog</short_desc>
          <delta_ts>2014-09-11 02:00: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>WebKitGTK</component>
          <version>528+ (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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>136615</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1034262</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-10 04:08:11 -0700</bug_when>
    <thetext>The only reason why we had this widget separated in WebCore was to share it between WebKit1 and WebKit2, but now it&apos;s only used by WebKitAuthenticationDialog. We can just merge it, and remove another unneeded file from WebCorePlatformGTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034263</commentid>
    <comment_count>1</comment_count>
      <attachid>237885</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-10 04:13:27 -0700</bug_when>
    <thetext>Created attachment 237885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034265</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-10 04:15:18 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034551</commentid>
    <comment_count>3</comment_count>
      <attachid>237885</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-09-11 01:03:04 -0700</bug_when>
    <thetext>Comment on attachment 237885
Patch

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

r=me

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:58
&gt; +

We might consider doing this in one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1034561</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-09-11 02:00:02 -0700</bug_when>
    <thetext>Committed r173510: &lt;http://trac.webkit.org/changeset/173510&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237885</attachid>
            <date>2014-09-10 04:13:27 -0700</date>
            <delta_ts>2014-09-11 01:03:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-remove-auth-widget.diff</filename>
            <type>text/plain</type>
            <size>27246</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZjZiNmU0Li41OTliYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTQtMDktMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIE1lcmdlIFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0IGludG8g
V2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzNjcwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSBXZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldC4gVGhl
IG9ubHkgcmVhc29uIHdoeSB3ZSBoYWQgdGhpcworICAgICAgICB3aWRnZXQgc2VwYXJhdGVkIGlu
IFdlYkNvcmUgd2FzIHRvIHNoYXJlIGl0IGJldHdlZW4gV2ViS2l0MSBhbmQKKyAgICAgICAgV2Vi
S2l0MiwgYnV0IG5vdyBpdCdzIG9ubHkgdXNlZCBieSBXZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxv
ZyBpbiBXZWJLaXQyLgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IFJlbW92ZSBmaWxl
cyBmcm9tIGNvbXBpbGF0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9XZWJLaXRBdXRoZW50
aWNhdGlvbldpZGdldC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1dlYktp
dEF1dGhlbnRpY2F0aW9uV2lkZ2V0Lmg6IFJlbW92ZWQuCisKIDIwMTQtMDktMDkgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01TRV0gaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLmh0
bWwgZmFpbGluZyBhZnRlciByMTczMzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0
Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDJj
OTU0YWIuLjg1NGM0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0yNDQsNyArMjQ0
LDYgQEAgbGlzdChBUFBFTkQgV2ViQ29yZVBsYXRmb3JtR1RLX1NPVVJDRVMKICAgICBwbGF0Zm9y
bS9ndGsvU291bmRHdGsuY3BwCiAgICAgcGxhdGZvcm0vZ3RrL1RlbXBvcmFyeUxpbmtTdHVicy5j
cHAKICAgICBwbGF0Zm9ybS9ndGsvVXNlckFnZW50R3RrLmNwcAotICAgIHBsYXRmb3JtL2d0ay9X
ZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldC5jcHAKICAgICBwbGF0Zm9ybS9ndGsvV2lkZ2V0QmFj
a2luZ1N0b3JlR3RrWDExLmNwcAogICAgIHBsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlv
bldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2ViS2l0QXV0aGVudGlj
YXRpb25XaWRnZXQuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NzgwNmVmLi4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XZWJLaXRBdXRoZW50aWNh
dGlvbldpZGdldC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyNDEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXQuaCIKLQotI2luY2x1ZGUgIkNyZWRlbnRpYWxC
YWNraW5nU3RvcmUuaCIKLSNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCi0jaW5jbHVkZSA8Z2xp
Yi9naTE4bi1saWIuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5pcXVlUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQot
c3RydWN0IF9XZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldFByaXZhdGUgewotICAgIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlIGNoYWxsZW5nZTsKLSAgICBDcmVkZW50aWFsU3RvcmFnZU1vZGUgY3Jl
ZGVudGlhbFN0b3JhZ2VNb2RlOwotCi0gICAgR3RrV2lkZ2V0KiBsb2dpbkVudHJ5OwotICAgIEd0
a1dpZGdldCogcGFzc3dvcmRFbnRyeTsKLSAgICBHdGtXaWRnZXQqIHJlbWVtYmVyQ2hlY2tCdXR0
b247Ci19OwotCi1HX0RFRklORV9UWVBFKFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0LCB3ZWJr
aXRfYXV0aGVudGljYXRpb25fd2lkZ2V0LCBHVEtfVFlQRV9CT1gpCi0KLXN0YXRpYyBjb25zdCBp
bnQgZ0xheW91dENvbHVtblNwYWNpbmcgPSAxMjsKLXN0YXRpYyBjb25zdCBpbnQgZ0xheW91dFJv
d1NwYWNpbmcgPSA2Owotc3RhdGljIGNvbnN0IGludCBnQnV0dG9uU3BhY2luZyA9IDU7Ci0KLSNp
ZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotc3RhdGljIHZvaWQgcGFja1R3b0NvbHVtbkxheW91dElu
Qm94KEd0a1dpZGdldCogYm94LCAuLi4pCi17Ci0gICAgdmFfbGlzdCBhcmd1bWVudExpc3Q7Ci0g
ICAgdmFfc3RhcnQoYXJndW1lbnRMaXN0LCBib3gpOwotCi0gICAgR3RrV2lkZ2V0KiB0YWJsZSA9
IGd0a190YWJsZV9uZXcoMSwgMiwgRkFMU0UpOwotICAgIGd0a190YWJsZV9zZXRfY29sX3NwYWNp
bmdzKEdUS19UQUJMRSh0YWJsZSksIGdMYXlvdXRDb2x1bW5TcGFjaW5nKTsKLSAgICBndGtfdGFi
bGVfc2V0X3Jvd19zcGFjaW5ncyhHVEtfVEFCTEUodGFibGUpLCBnTGF5b3V0Um93U3BhY2luZyk7
Ci0KLSAgICBHdGtXaWRnZXQqIGZpcnN0Q29sdW1uV2lkZ2V0ID0gdmFfYXJnKGFyZ3VtZW50TGlz
dCwgR3RrV2lkZ2V0Kik7Ci0gICAgaW50IHJvd051bWJlciA9IDA7Ci0gICAgd2hpbGUgKGZpcnN0
Q29sdW1uV2lkZ2V0KSB7Ci0gICAgICAgIGlmIChyb3dOdW1iZXIpCi0gICAgICAgICAgICBndGtf
dGFibGVfcmVzaXplKEdUS19UQUJMRSh0YWJsZSksIHJvd051bWJlciArIDEsIDIpOwotCi0gICAg
ICAgIEd0a1dpZGdldCogc2Vjb25kQ29sdW1uV2lkZ2V0ID0gdmFfYXJnKGFyZ3VtZW50TGlzdCwg
R3RrV2lkZ2V0Kik7Ci0gICAgICAgIEd0a0F0dGFjaE9wdGlvbnMgYXR0YWNoT3B0aW9ucyA9IHN0
YXRpY19jYXN0PEd0a0F0dGFjaE9wdGlvbnM+KEdUS19FWFBBTkQgfCBHVEtfRklMTCk7Ci0gICAg
ICAgIGd0a190YWJsZV9hdHRhY2goCi0gICAgICAgICAgICBHVEtfVEFCTEUodGFibGUpLCBmaXJz
dENvbHVtbldpZGdldCwKLSAgICAgICAgICAgIDAsIHNlY29uZENvbHVtbldpZGdldCA/IDEgOiAy
LAotICAgICAgICAgICAgcm93TnVtYmVyLCByb3dOdW1iZXIgKyAxLAotICAgICAgICAgICAgYXR0
YWNoT3B0aW9ucywgYXR0YWNoT3B0aW9ucywKLSAgICAgICAgICAgIDAsIDApOwotICAgICAgICBn
dGtfd2lkZ2V0X3Nob3coZmlyc3RDb2x1bW5XaWRnZXQpOwotCi0gICAgICAgIGlmIChzZWNvbmRD
b2x1bW5XaWRnZXQpIHsKLSAgICAgICAgICAgIGd0a190YWJsZV9hdHRhY2hfZGVmYXVsdHMoR1RL
X1RBQkxFKHRhYmxlKSwgc2Vjb25kQ29sdW1uV2lkZ2V0LCAxLCAyLCByb3dOdW1iZXIsIHJvd051
bWJlciArIDEpOwotICAgICAgICAgICAgZ3RrX3dpZGdldF9zaG93KHNlY29uZENvbHVtbldpZGdl
dCk7Ci0gICAgICAgIH0KLQotICAgICAgICBmaXJzdENvbHVtbldpZGdldCA9IHZhX2FyZyhhcmd1
bWVudExpc3QsIEd0a1dpZGdldCopOwotICAgICAgICByb3dOdW1iZXIrKzsKLSAgICB9Ci0KLSAg
ICB2YV9lbmQoYXJndW1lbnRMaXN0KTsKLQotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9Y
KGJveCksIHRhYmxlLCBGQUxTRSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hvdyh0YWJs
ZSk7Ci19Ci0jZWxzZQotc3RhdGljIHZvaWQgcGFja1R3b0NvbHVtbkxheW91dEluQm94KEd0a1dp
ZGdldCogYm94LCAuLi4pCi17Ci0gICAgdmFfbGlzdCBhcmd1bWVudExpc3Q7Ci0gICAgdmFfc3Rh
cnQoYXJndW1lbnRMaXN0LCBib3gpOwotCi0gICAgR3RrV2lkZ2V0KiBncmlkID0gZ3RrX2dyaWRf
bmV3KCk7Ci0gICAgZ3RrX2dyaWRfc2V0X2NvbHVtbl9zcGFjaW5nKEdUS19HUklEKGdyaWQpLCBn
TGF5b3V0Um93U3BhY2luZyk7Ci0gICAgZ3RrX2dyaWRfc2V0X3Jvd19zcGFjaW5nKEdUS19HUklE
KGdyaWQpLCBnTGF5b3V0Um93U3BhY2luZyk7Ci0gICAgZ3RrX2dyaWRfc2V0X2NvbHVtbl9ob21v
Z2VuZW91cyhHVEtfR1JJRChncmlkKSwgVFJVRSk7Ci0KLSAgICBHdGtXaWRnZXQqIGZpcnN0Q29s
dW1uV2lkZ2V0ID0gdmFfYXJnKGFyZ3VtZW50TGlzdCwgR3RrV2lkZ2V0Kik7Ci0gICAgaW50IHJv
d051bWJlciA9IDA7Ci0gICAgd2hpbGUgKGZpcnN0Q29sdW1uV2lkZ2V0KSB7Ci0gICAgICAgIEd0
a1dpZGdldCogc2Vjb25kQ29sdW1uV2lkZ2V0ID0gdmFfYXJnKGFyZ3VtZW50TGlzdCwgR3RrV2lk
Z2V0Kik7Ci0gICAgICAgIGludCBmaXJzdFdpZGdldFdpZHRoID0gc2Vjb25kQ29sdW1uV2lkZ2V0
ID8gMSA6IDI7Ci0KLSAgICAgICAgZ3RrX2dyaWRfYXR0YWNoKEdUS19HUklEKGdyaWQpLCBmaXJz
dENvbHVtbldpZGdldCwgMCwgcm93TnVtYmVyLCBmaXJzdFdpZGdldFdpZHRoLCAxKTsKLSAgICAg
ICAgZ3RrX3dpZGdldF9zZXRfaGV4cGFuZChmaXJzdENvbHVtbldpZGdldCwgVFJVRSk7Ci0gICAg
ICAgIGd0a193aWRnZXRfc2V0X3ZleHBhbmQoZmlyc3RDb2x1bW5XaWRnZXQsIFRSVUUpOwotICAg
ICAgICBndGtfd2lkZ2V0X3Nob3coZmlyc3RDb2x1bW5XaWRnZXQpOwotCi0gICAgICAgIGlmIChz
ZWNvbmRDb2x1bW5XaWRnZXQpIHsKLSAgICAgICAgICAgIGd0a19ncmlkX2F0dGFjaChHVEtfR1JJ
RChncmlkKSwgc2Vjb25kQ29sdW1uV2lkZ2V0LCAxLCByb3dOdW1iZXIsIDEsIDEpOwotICAgICAg
ICAgICAgZ3RrX3dpZGdldF9zZXRfaGV4cGFuZChzZWNvbmRDb2x1bW5XaWRnZXQsIFRSVUUpOwot
ICAgICAgICAgICAgZ3RrX3dpZGdldF9zZXRfdmV4cGFuZChzZWNvbmRDb2x1bW5XaWRnZXQsIFRS
VUUpOwotICAgICAgICAgICAgZ3RrX3dpZGdldF9zaG93KHNlY29uZENvbHVtbldpZGdldCk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBmaXJzdENvbHVtbldpZGdldCA9IHZhX2FyZyhhcmd1bWVudExp
c3QsIEd0a1dpZGdldCopOwotICAgICAgICByb3dOdW1iZXIrKzsKLSAgICB9Ci0KLSAgICB2YV9l
bmQoYXJndW1lbnRMaXN0KTsKLQotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGJveCks
IGdyaWQsIEZBTFNFLCBGQUxTRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93KGdyaWQpOwotfQot
I2VuZGlmCi0KLXN0YXRpYyBHdGtXaWRnZXQqIGNyZWF0ZUxhYmVsKGNvbnN0IGNoYXIqIGxhYmVs
U3RyaW5nLCBpbnQgaG9yaXpvbnRhbFBhZGRpbmcgPSAwKQotewotICAgIEd0a1dpZGdldCogbGFi
ZWwgPSBndGtfbGFiZWxfbmV3KGxhYmVsU3RyaW5nKTsKLSAgICBndGtfbWlzY19zZXRfYWxpZ25t
ZW50KEdUS19NSVNDKGxhYmVsKSwgMCwgMC41KTsKLSAgICBpZiAoaG9yaXpvbnRhbFBhZGRpbmcp
Ci0gICAgICAgIGd0a19taXNjX3NldF9wYWRkaW5nKEdUS19NSVNDKGxhYmVsKSwgMCwgaG9yaXpv
bnRhbFBhZGRpbmcpOwotICAgIHJldHVybiBsYWJlbDsKLX0KLQotc3RhdGljIEd0a1dpZGdldCog
Y3JlYXRlRW50cnkoR3RrV2lkZ2V0KiogbWVtYmVyKQotewotICAgICptZW1iZXIgPSBndGtfZW50
cnlfbmV3KCk7Ci0gICAgZ3RrX2VudHJ5X3NldF9hY3RpdmF0ZXNfZGVmYXVsdChHVEtfRU5UUlko
Km1lbWJlciksIFRSVUUpOwotICAgIHJldHVybiAqbWVtYmVyOwotfQotCi1zdGF0aWMgdm9pZCB3
ZWJraXRBdXRoZW50aWNhdGlvbldpZGdldEluaXRpYWxpemUoV2ViS2l0QXV0aGVudGljYXRpb25X
aWRnZXQqIGF1dGhXaWRnZXQpCi17Ci0gICAgZ3RrX29yaWVudGFibGVfc2V0X29yaWVudGF0aW9u
KEdUS19PUklFTlRBQkxFKGF1dGhXaWRnZXQpLCBHVEtfT1JJRU5UQVRJT05fSE9SSVpPTlRBTCk7
Ci0gICAgZ3RrX2JveF9zZXRfc3BhY2luZyhHVEtfQk9YKGF1dGhXaWRnZXQpLCBnTGF5b3V0Q29s
dW1uU3BhY2luZyk7Ci0gICAgZ3RrX2NvbnRhaW5lcl9zZXRfYm9yZGVyX3dpZHRoKEdUS19DT05U
QUlORVIoYXV0aFdpZGdldCksIGdCdXR0b25TcGFjaW5nKTsKLQotICAgIEd0a1dpZGdldCogaWNv
biA9IGd0a19pbWFnZV9uZXdfZnJvbV9zdG9jayhHVEtfU1RPQ0tfRElBTE9HX0FVVEhFTlRJQ0FU
SU9OLCBHVEtfSUNPTl9TSVpFX0RJQUxPRyk7Ci0gICAgZ3RrX21pc2Nfc2V0X2FsaWdubWVudChH
VEtfTUlTQyhpY29uKSwgMC41LCAwLjApOwotICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9Y
KGF1dGhXaWRnZXQpLCBpY29uLCBGQUxTRSwgRkFMU0UsIDApOwotICAgIGd0a193aWRnZXRfc2hv
dyhpY29uKTsKLQotICAgIFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0UHJpdmF0ZSogcHJpdiA9
IGF1dGhXaWRnZXQtPnByaXY7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBwcm9tcHQoZ19zdHJkdXBf
cHJpbnRmKAotICAgICAgICBfKCJUaGUgc2l0ZSAlczolaSByZXF1ZXN0cyBhIHVzZXJuYW1lIGFu
ZCBwYXNzd29yZCIpLAotICAgICAgICBwcml2LT5jaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCku
aG9zdCgpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgIHByaXYtPmNoYWxsZW5nZS5wcm90ZWN0aW9u
U3BhY2UoKS5wb3J0KCkpKTsKLQotICAgIHByaXYtPnJlbWVtYmVyQ2hlY2tCdXR0b24gPSBndGtf
Y2hlY2tfYnV0dG9uX25ld193aXRoX21uZW1vbmljKF8oIl9SZW1lbWJlciBwYXNzd29yZCIpKTsK
LSAgICBndGtfbGFiZWxfc2V0X2xpbmVfd3JhcChHVEtfTEFCRUwoZ3RrX2Jpbl9nZXRfY2hpbGQo
R1RLX0JJTihwcml2LT5yZW1lbWJlckNoZWNrQnV0dG9uKSkpLCBUUlVFKTsKLQotICAgIFN0cmlu
ZyByZWFsbSA9IGF1dGhXaWRnZXQtPnByaXYtPmNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5y
ZWFsbSgpOwotICAgIGlmICghcmVhbG0uaXNFbXB0eSgpKSB7Ci0gICAgICAgIHBhY2tUd29Db2x1
bW5MYXlvdXRJbkJveCgKLSAgICAgICAgICAgIEdUS19XSURHRVQoYXV0aFdpZGdldCksCi0gICAg
ICAgICAgICBjcmVhdGVMYWJlbChwcm9tcHQuZ2V0KCksIGdMYXlvdXRSb3dTcGFjaW5nKSwgTlVM
TCwKLSAgICAgICAgICAgIGNyZWF0ZUxhYmVsKF8oIlNlcnZlciBtZXNzYWdlOiIpKSwgY3JlYXRl
TGFiZWwocmVhbG0udXRmOCgpLmRhdGEoKSksCi0gICAgICAgICAgICBjcmVhdGVMYWJlbChfKCJV
c2VybmFtZToiKSksIGNyZWF0ZUVudHJ5KCZwcml2LT5sb2dpbkVudHJ5KSwKLSAgICAgICAgICAg
IGNyZWF0ZUxhYmVsKF8oIlBhc3N3b3JkOiIpKSwgY3JlYXRlRW50cnkoJnByaXYtPnBhc3N3b3Jk
RW50cnkpLAotICAgICAgICAgICAgcHJpdi0+cmVtZW1iZXJDaGVja0J1dHRvbiwgTlVMTCwKLSAg
ICAgICAgICAgIE5VTEwpOwotCi0gICAgfSBlbHNlIHsKLSAgICAgICAgcGFja1R3b0NvbHVtbkxh
eW91dEluQm94KAotICAgICAgICAgICAgR1RLX1dJREdFVChhdXRoV2lkZ2V0KSwKLSAgICAgICAg
ICAgIGNyZWF0ZUxhYmVsKHByb21wdC5nZXQoKSwgZ0xheW91dFJvd1NwYWNpbmcpLCBOVUxMLAot
ICAgICAgICAgICAgY3JlYXRlTGFiZWwoXygiVXNlcm5hbWU6IikpLCBjcmVhdGVFbnRyeSgmcHJp
di0+bG9naW5FbnRyeSksCi0gICAgICAgICAgICBjcmVhdGVMYWJlbChfKCJQYXNzd29yZDoiKSks
IGNyZWF0ZUVudHJ5KCZwcml2LT5wYXNzd29yZEVudHJ5KSwKLSAgICAgICAgICAgIHByaXYtPnJl
bWVtYmVyQ2hlY2tCdXR0b24sIE5VTEwsIE5VTEwsCi0gICAgICAgICAgICBOVUxMKTsKLSAgICB9
Ci0gICAgZ3RrX2VudHJ5X3NldF92aXNpYmlsaXR5KEdUS19FTlRSWShwcml2LT5wYXNzd29yZEVu
dHJ5KSwgRkFMU0UpOwotICAgIGd0a193aWRnZXRfc2V0X3Zpc2libGUocHJpdi0+cmVtZW1iZXJD
aGVja0J1dHRvbiwgcHJpdi0+Y3JlZGVudGlhbFN0b3JhZ2VNb2RlICE9IERpc2FsbG93UGVyc2lz
dGVudFN0b3JhZ2UpOwotCi0gICAgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbEZyb21QZXJz
aXN0ZW50U3RvcmFnZSA9IHByaXYtPmNoYWxsZW5nZS5wcm9wb3NlZENyZWRlbnRpYWwoKTsKLSAg
ICBpZiAoIWNyZWRlbnRpYWxGcm9tUGVyc2lzdGVudFN0b3JhZ2UuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtfRU5UUlkocHJpdi0+bG9naW5FbnRyeSksIGNyZWRl
bnRpYWxGcm9tUGVyc2lzdGVudFN0b3JhZ2UudXNlcigpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAg
ICBndGtfZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKHByaXYtPnBhc3N3b3JkRW50cnkpLCBjcmVk
ZW50aWFsRnJvbVBlcnNpc3RlbnRTdG9yYWdlLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSk7Ci0g
ICAgICAgIGd0a190b2dnbGVfYnV0dG9uX3NldF9hY3RpdmUoR1RLX1RPR0dMRV9CVVRUT04ocHJp
di0+cmVtZW1iZXJDaGVja0J1dHRvbiksIFRSVUUpOwotICAgIH0KLQotICAgIGd0a193aWRnZXRf
Z3JhYl9mb2N1cyhwcml2LT5sb2dpbkVudHJ5KTsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0QXV0
aGVudGljYXRpb25XaWRnZXRGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1dJREdFVChvYmplY3QpLT5wcml2LT5+V2ViS2l0QXV0aGVudGljYXRp
b25XaWRnZXRQcml2YXRlKCk7Ci0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2F1dGhlbnRpY2F0
aW9uX3dpZGdldF9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwotfQotCi1zdGF0aWMg
dm9pZCB3ZWJraXRfYXV0aGVudGljYXRpb25fd2lkZ2V0X2luaXQoV2ViS2l0QXV0aGVudGljYXRp
b25XaWRnZXQqIGF1dGhXaWRnZXQpCi17Ci0gICAgV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXRQ
cml2YXRlKiBwcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKGF1dGhXaWRnZXQsIFdF
QktJVF9UWVBFX0FVVEhFTlRJQ0FUSU9OX1dJREdFVCwgV2ViS2l0QXV0aGVudGljYXRpb25XaWRn
ZXRQcml2YXRlKTsKLSAgICBuZXcgKHByaXYpIFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0UHJp
dmF0ZSgpOwotICAgIGF1dGhXaWRnZXQtPnByaXYgPSBwcml2OwotfQotCi1zdGF0aWMgdm9pZCB3
ZWJraXRfYXV0aGVudGljYXRpb25fd2lkZ2V0X2NsYXNzX2luaXQoV2ViS2l0QXV0aGVudGljYXRp
b25XaWRnZXRDbGFzcyoga2xhc3MpCi17Ci0gICAgR09iamVjdENsYXNzKiBvYmplY3RDbGFzcyA9
IEdfT0JKRUNUX0NMQVNTKGtsYXNzKTsKLSAgICBvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJr
aXRBdXRoZW50aWNhdGlvbldpZGdldEZpbmFsaXplOwotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJp
dmF0ZShvYmplY3RDbGFzcywgc2l6ZW9mKFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0UHJpdmF0
ZSkpOwotfQotCi1HdGtXaWRnZXQqIHdlYmtpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0TmV3KGNvbnN0
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UsIENyZWRlbnRpYWxTdG9yYWdlTW9k
ZSBtb2RlKQotewotICAgIFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0KiBhdXRoV2lkZ2V0ID0g
V0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1dJREdFVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfQVVU
SEVOVElDQVRJT05fV0lER0VULCBOVUxMKSk7Ci0gICAgYXV0aFdpZGdldC0+cHJpdi0+Y2hhbGxl
bmdlID0gY2hhbGxlbmdlOwotICAgIGF1dGhXaWRnZXQtPnByaXYtPmNyZWRlbnRpYWxTdG9yYWdl
TW9kZSA9IG1vZGU7Ci0gICAgd2Via2l0QXV0aGVudGljYXRpb25XaWRnZXRJbml0aWFsaXplKGF1
dGhXaWRnZXQpOwotICAgIHJldHVybiBHVEtfV0lER0VUKGF1dGhXaWRnZXQpOwotfQotCi1DcmVk
ZW50aWFsIHdlYmtpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0Q3JlYXRlQ3JlZGVudGlhbChXZWJLaXRB
dXRoZW50aWNhdGlvbldpZGdldCogYXV0aFdpZGdldCkKLXsKLSAgICBjb25zdCBjaGFyKiB1c2Vy
bmFtZSA9IGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5UUlkoYXV0aFdpZGdldC0+cHJpdi0+bG9n
aW5FbnRyeSkpOwotICAgIGNvbnN0IGNoYXIqIHBhc3N3b3JkID0gZ3RrX2VudHJ5X2dldF90ZXh0
KEdUS19FTlRSWShhdXRoV2lkZ2V0LT5wcml2LT5wYXNzd29yZEVudHJ5KSk7Ci0gICAgYm9vbCBy
ZW1lbWJlclBhc3N3b3JkID0gZ3RrX3RvZ2dsZV9idXR0b25fZ2V0X2FjdGl2ZShHVEtfVE9HR0xF
X0JVVFRPTihhdXRoV2lkZ2V0LT5wcml2LT5yZW1lbWJlckNoZWNrQnV0dG9uKSk7Ci0KLSAgICBD
cmVkZW50aWFsUGVyc2lzdGVuY2UgcGVyc2lzdGVuY2U7Ci0gICAgaWYgKHJlbWVtYmVyUGFzc3dv
cmQgJiYgYXV0aFdpZGdldC0+cHJpdi0+Y3JlZGVudGlhbFN0b3JhZ2VNb2RlID09IEFsbG93UGVy
c2lzdGVudFN0b3JhZ2UpCi0gICAgICAgIHBlcnNpc3RlbmNlID0gQ3JlZGVudGlhbFBlcnNpc3Rl
bmNlUGVybWFuZW50OwotICAgIGVsc2UKLSAgICAgICAgcGVyc2lzdGVuY2UgPSBDcmVkZW50aWFs
UGVyc2lzdGVuY2VGb3JTZXNzaW9uOwotICAgIHJldHVybiBDcmVkZW50aWFsKFN0cmluZzo6ZnJv
bVVURjgodXNlcm5hbWUpLCBTdHJpbmc6OmZyb21VVEY4KHBhc3N3b3JkKSwgcGVyc2lzdGVuY2Up
OwotfQotCi1BdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgd2Via2l0QXV0aGVudGljYXRpb25XaWRn
ZXRHZXRDaGFsbGVuZ2UoV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXQqIGF1dGhXaWRnZXQpCi17
Ci0gICAgcmV0dXJuIGF1dGhXaWRnZXQtPnByaXYtPmNoYWxsZW5nZTsKLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2YjkzZGMuLjAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0LmgK
KysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoK
LSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0g
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgotICovCi0KLSNpZm5kZWYgV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXRfaAotI2RlZmlu
ZSBXZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldF9oCi0KLSNpbmNsdWRlICJBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5oIgotI2luY2x1ZGUgPGd0ay9ndGsuaD4KLQotZW51bSBDcmVkZW50aWFsU3Rv
cmFnZU1vZGUgewotICAgIEFsbG93UGVyc2lzdGVudFN0b3JhZ2UsIC8vIFRoZSB1c2VyIGlzIGFz
a2VkIHdoZXRoZXIgdG8gc3RvcmUgY3JlZGVudGlhbCBpbmZvcm1hdGlvbi4KLSAgICBEaXNhbGxv
d1BlcnNpc3RlbnRTdG9yYWdlIC8vIENyZWRlbnRpYWwgaW5mb3JtYXRpb24gaXMgb25seSBrZXB0
IGluIHRoZSBzZXNzaW9uLgotfTsKLQotR19CRUdJTl9ERUNMUwotCi0jZGVmaW5lIFdFQktJVF9U
WVBFX0FVVEhFTlRJQ0FUSU9OX1dJREdFVCAgICAgICAgICAgICh3ZWJraXRfYXV0aGVudGljYXRp
b25fd2lkZ2V0X2dldF90eXBlKCkpCi0jZGVmaW5lIFdFQktJVF9BVVRIRU5USUNBVElPTl9XSURH
RVQob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VC
S0lUX1RZUEVfQVVUSEVOVElDQVRJT05fV0lER0VULCBXZWJLaXRBdXRoZW50aWNhdGlvbldpZGdl
dCkpCi0jZGVmaW5lIFdFQktJVF9JU19BVVRIRU5USUNBVElPTl9XSURHRVQob2JqKSAgICAgICAg
IChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfQVVUSEVOVElD
QVRJT05fV0lER0VUKSkKLSNkZWZpbmUgV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1dJREdFVF9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQ
RV9BVVRIRU5USUNBVElPTl9XSURHRVQsIFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0Q2xhc3Mp
KQotI2RlZmluZSBXRUJLSVRfSVNfQVVUSEVOVElDQVRJT05fV0lER0VUX0NMQVNTKGtsYXNzKSAo
R19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0FVVEhFTlRJQ0FU
SU9OX1dJREdFVCkpCi0jZGVmaW5lIFdFQktJVF9BVVRIRU5USUNBVElPTl9XSURHRVRfR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVf
QVVUSEVOVElDQVRJT05fV0lER0VULCBXZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldENsYXNzKSkK
LQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0ICAgICAgICBXZWJL
aXRBdXRoZW50aWNhdGlvbldpZGdldDsKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRBdXRoZW50aWNh
dGlvbldpZGdldENsYXNzICAgV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXRDbGFzczsKLXR5cGVk
ZWYgc3RydWN0IF9XZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldFByaXZhdGUgV2ViS2l0QXV0aGVu
dGljYXRpb25XaWRnZXRQcml2YXRlOwotCi1zdHJ1Y3QgX1dlYktpdEF1dGhlbnRpY2F0aW9uV2lk
Z2V0IHsKLSAgICBHdGtCb3ggcGFyZW50OwotCi0gICAgV2ViS2l0QXV0aGVudGljYXRpb25XaWRn
ZXRQcml2YXRlKiBwcml2OwotfTsKLQotc3RydWN0IF9XZWJLaXRBdXRoZW50aWNhdGlvbldpZGdl
dENsYXNzIHsKLSAgICBHdGtCb3hDbGFzcyBwYXJlbnRDbGFzczsKLX07Ci0KLUdUeXBlIHdlYmtp
dF9hdXRoZW50aWNhdGlvbl93aWRnZXRfZ2V0X3R5cGUoKTsKLUd0a1dpZGdldCogd2Via2l0QXV0
aGVudGljYXRpb25XaWRnZXROZXcoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmLCBDcmVkZW50aWFsU3RvcmFnZU1vZGUpOwotV2ViQ29yZTo6Q3JlZGVudGlhbCB3ZWJraXRB
dXRoZW50aWNhdGlvbldpZGdldENyZWF0ZUNyZWRlbnRpYWwoV2ViS2l0QXV0aGVudGljYXRpb25X
aWRnZXQqKTsKLVdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiB3ZWJraXRBdXRoZW50
aWNhdGlvbldpZGdldEdldENoYWxsZW5nZShXZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldCopOwot
Ci1HX0VORF9ERUNMUwotCi0jZW5kaWYgLy8gV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9DaGFuZ2VMb2cKaW5kZXggNjg0N2Y1ZS4uNWQy
M2MzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTQtMDktMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdIE1lcmdlIFdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0
IGludG8gV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjcwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogUE9URklMRVMuaW46IFJlbW92ZSBXZWJLaXRBdXRo
ZW50aWNhdGlvbldpZGdldC5jcHAgYW5kIGFkZCBXZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5j
cHAuCisKIDIwMTQtMDktMDIgIENocmlzdGlhbiBTdGFkZWxtYW5uICA8Z25vbWUtZGVAZ2Vub2Rl
ZnRlc3QuZGU+CiAKICAgICAgICAgW0dUS10gVXBkYXRlZCBHZXJtYW4gdHJhbnNsYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbiBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgppbmRleCA4YWQzNjVlLi5i
NGJmZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vUE9URklM
RVMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCkBA
IC0xLDggKzEsOCBAQAogIyBMaXN0IG9mIHNvdXJjZSBmaWxlcyB3aGljaCBjb250YWluIHRyYW5z
bGF0YWJsZSBzdHJpbmdzLgogRXJyb3JzR3RrLmNwcAogTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAK
LVdlYktpdEF1dGhlbnRpY2F0aW9uV2lkZ2V0LmNwcAogLi4vLi4vLi4vV2ViS2l0Mi9TaGFyZWQv
RG93bmxvYWRzL3NvdXAvRG93bmxvYWRTb3VwLmNwcAorLi4vLi4vLi4vV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5jcHAKIC4uLy4uLy4uL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RG93bmxvYWQuY3BwCiAuLi8uLi8uLi9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEZhdmljb25EYXRhYmFzZS5jcHAKIC4uLy4uLy4uL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDc4OGFlZTUuLmYyNmZkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxNC0wOS0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUS10gTWVyZ2UgV2ViS2l0QXV0aGVudGljYXRpb25XaWRnZXQgaW50byBXZWJL
aXRBdXRoZW50aWNhdGlvbkRpYWxvZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM2NzAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ29weSBXZWJLaXRBdXRoZW50aWNhdGlvbldpZGdldCBpbXBsZW1lbnRh
dGlvbiBpbnNpZGUKKyAgICAgICAgV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cgdXNpbmcgYSBu
b3JtYWwgR3RrQm94IGluc3RlYWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRBdXRoZW50aWNhdGlvbkRpYWxvZy5jcHA6CisgICAgICAgIChva0J1dHRvbkNsaWNrZWQpOgor
ICAgICAgICAoY2FuY2VsQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChwYWNrVHdvQ29sdW1uTGF5
b3V0SW5Cb3gpOgorICAgICAgICAoY3JlYXRlTGFiZWwpOgorICAgICAgICAoY3JlYXRlRW50cnkp
OgorICAgICAgICAod2Via2l0QXV0aGVudGljYXRpb25EaWFsb2dJbml0aWFsaXplKTogUmVtb3Zl
IHRoZQorICAgICAgICBDcmVkZW50aWFsU3RvcmFnZU1vZGUgcGFyYW1ldGVyIHNpbmNlIGl0J3Mg
bm93IGEgbWVtYmVyLgorICAgICAgICAod2Via2l0QXV0aGVudGljYXRpb25EaWFsb2dOZXcpOiBJ
bml0aWFsaXplIHRoZQorICAgICAgICBDcmVkZW50aWFsU3RvcmFnZU1vZGUgbWVtYmVyIHRvby4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5o
OgorCiAyMDE0LTA5LTEwICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBhbGxvdyBvdmVyd3JpdGluZyBkZXN0aW5hdGlvbiBvZiBkb3du
bG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
QXV0aGVudGljYXRpb25EaWFsb2cuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cuY3BwCmluZGV4IDQzY2Q4M2EuLjc3MmM3NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhl
bnRpY2F0aW9uRGlhbG9nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5jcHAKQEAgLTI1LDEyICsyNSwxNyBAQAogI2lu
Y2x1ZGUgIldlYktpdENyZWRlbnRpYWxQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKKyNpbmNsdWRlIDxnbGliL2dpMThuLWxp
Yi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAogc3RydWN0IF9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZ1ByaXZhdGUgewogICAg
IEdSZWZQdHI8V2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0PiByZXF1ZXN0OwotICAgIEd0a1dp
ZGdldCogYXV0aFdpZGdldDsKKyAgICBDcmVkZW50aWFsU3RvcmFnZU1vZGUgY3JlZGVudGlhbFN0
b3JhZ2VNb2RlOworICAgIEd0a1dpZGdldCogbG9naW5FbnRyeTsKKyAgICBHdGtXaWRnZXQqIHBh
c3N3b3JkRW50cnk7CisgICAgR3RrV2lkZ2V0KiByZW1lbWJlckNoZWNrQnV0dG9uOwogICAgIEd0
a1dpZGdldCogZGVmYXVsdEJ1dHRvbjsKICAgICB1bnNpZ25lZCBsb25nIGF1dGhlbnRpY2F0aW9u
Q2FuY2VsbGVkSUQ7CiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IHN0eWxlQ29udGV4dDsK
QEAgLTQxLDcgKzQ2LDE4IEBAIFdFQktJVF9ERUZJTkVfVFlQRShXZWJLaXRBdXRoZW50aWNhdGlv
bkRpYWxvZywgd2Via2l0X2F1dGhlbnRpY2F0aW9uX2RpYWxvZywgR1RLCiBzdGF0aWMgdm9pZCBv
a0J1dHRvbkNsaWNrZWQoR3RrQnV0dG9uKiwgV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cqIGF1
dGhEaWFsb2cpCiB7CiAgICAgV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2dQcml2YXRlKiBwcml2
ID0gYXV0aERpYWxvZy0+cHJpdjsKLSAgICBXZWJLaXRDcmVkZW50aWFsKiBjcmVkZW50aWFsID0g
d2Via2l0Q3JlZGVudGlhbENyZWF0ZSh3ZWJraXRBdXRoZW50aWNhdGlvbldpZGdldENyZWF0ZUNy
ZWRlbnRpYWwoV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1dJREdFVChwcml2LT5hdXRoV2lkZ2V0KSkp
OworICAgIGNvbnN0IGNoYXIqIHVzZXJuYW1lID0gZ3RrX2VudHJ5X2dldF90ZXh0KEdUS19FTlRS
WShwcml2LT5sb2dpbkVudHJ5KSk7CisgICAgY29uc3QgY2hhciogcGFzc3dvcmQgPSBndGtfZW50
cnlfZ2V0X3RleHQoR1RLX0VOVFJZKHByaXYtPnBhc3N3b3JkRW50cnkpKTsKKyAgICBib29sIHJl
bWVtYmVyUGFzc3dvcmQgPSBndGtfdG9nZ2xlX2J1dHRvbl9nZXRfYWN0aXZlKEdUS19UT0dHTEVf
QlVUVE9OKHByaXYtPnJlbWVtYmVyQ2hlY2tCdXR0b24pKTsKKworICAgIFdlYkNvcmU6OkNyZWRl
bnRpYWxQZXJzaXN0ZW5jZSBwZXJzaXN0ZW5jZTsKKyAgICBpZiAocmVtZW1iZXJQYXNzd29yZCAm
JiBwcml2LT5jcmVkZW50aWFsU3RvcmFnZU1vZGUgPT0gQWxsb3dQZXJzaXN0ZW50U3RvcmFnZSkK
KyAgICAgICAgcGVyc2lzdGVuY2UgPSBXZWJDb3JlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2VQZXJt
YW5lbnQ7CisgICAgZWxzZQorICAgICAgICBwZXJzaXN0ZW5jZSA9IFdlYkNvcmU6OkNyZWRlbnRp
YWxQZXJzaXN0ZW5jZUZvclNlc3Npb247CisKKyAgICAvLyBGSVhNRTogVXNlIGEgc3RhY2sgYWxs
b2NhdGVkIFdlYktpdENyZWRlbnRpYWwuCisgICAgV2ViS2l0Q3JlZGVudGlhbCogY3JlZGVudGlh
bCA9IHdlYmtpdENyZWRlbnRpYWxDcmVhdGUoV2ViQ29yZTo6Q3JlZGVudGlhbChTdHJpbmc6OmZy
b21VVEY4KHVzZXJuYW1lKSwgU3RyaW5nOjpmcm9tVVRGOChwYXNzd29yZCksIHBlcnNpc3RlbmNl
KSk7CiAgICAgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfYXV0aGVudGljYXRlKHByaXYt
PnJlcXVlc3QuZ2V0KCksIGNyZWRlbnRpYWwpOwogICAgIHdlYmtpdF9jcmVkZW50aWFsX2ZyZWUo
Y3JlZGVudGlhbCk7CiAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQoYXV0aERpYWxv
ZykpOwpAQCAtNDksNyArNjUsNyBAQCBzdGF0aWMgdm9pZCBva0J1dHRvbkNsaWNrZWQoR3RrQnV0
dG9uKiwgV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cqIGF1dGhEaWFsb2cpCiAKIHN0YXRpYyB2
b2lkIGNhbmNlbEJ1dHRvbkNsaWNrZWQoR3RrQnV0dG9uKiwgV2ViS2l0QXV0aGVudGljYXRpb25E
aWFsb2cqIGF1dGhEaWFsb2cpCiB7Ci0gICAgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3Rf
YXV0aGVudGljYXRlKGF1dGhEaWFsb2ctPnByaXYtPnJlcXVlc3QuZ2V0KCksIDApOworICAgIHdl
YmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2F1dGhlbnRpY2F0ZShhdXRoRGlhbG9nLT5wcml2
LT5yZXF1ZXN0LmdldCgpLCBudWxscHRyKTsKICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koR1RLX1dJ
REdFVChhdXRoRGlhbG9nKSk7CiB9CiAKQEAgLTU4LDcgKzc0LDYxIEBAIHN0YXRpYyB2b2lkIGF1
dGhlbnRpY2F0aW9uQ2FuY2VsbGVkKFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCosIFdlYktp
dEF1dGhlbnRpCiAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURHRVQoYXV0aERpYWxvZykp
OwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRBdXRoZW50aWNhdGlvbkRpYWxvZ0luaXRpYWxpemUo
V2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cqIGF1dGhEaWFsb2csIENyZWRlbnRpYWxTdG9yYWdl
TW9kZSBjcmVkZW50aWFsU3RvcmFnZU1vZGUpCitzdGF0aWMgdm9pZCBwYWNrVHdvQ29sdW1uTGF5
b3V0SW5Cb3goR3RrV2lkZ2V0KiBib3gsIC4uLikKK3sKKyAgICB2YV9saXN0IGFyZ3VtZW50TGlz
dDsKKyAgICB2YV9zdGFydChhcmd1bWVudExpc3QsIGJveCk7CisKKyAgICBHdGtXaWRnZXQqIGdy
aWQgPSBndGtfZ3JpZF9uZXcoKTsKKyAgICBndGtfZ3JpZF9zZXRfY29sdW1uX3NwYWNpbmcoR1RL
X0dSSUQoZ3JpZCksIDYpOworICAgIGd0a19ncmlkX3NldF9yb3dfc3BhY2luZyhHVEtfR1JJRChn
cmlkKSwgNik7CisgICAgZ3RrX2dyaWRfc2V0X2NvbHVtbl9ob21vZ2VuZW91cyhHVEtfR1JJRChn
cmlkKSwgVFJVRSk7CisKKyAgICBHdGtXaWRnZXQqIGZpcnN0Q29sdW1uV2lkZ2V0ID0gdmFfYXJn
KGFyZ3VtZW50TGlzdCwgR3RrV2lkZ2V0Kik7CisgICAgaW50IHJvd051bWJlciA9IDA7CisgICAg
d2hpbGUgKGZpcnN0Q29sdW1uV2lkZ2V0KSB7CisgICAgICAgIEd0a1dpZGdldCogc2Vjb25kQ29s
dW1uV2lkZ2V0ID0gdmFfYXJnKGFyZ3VtZW50TGlzdCwgR3RrV2lkZ2V0Kik7CisgICAgICAgIGlu
dCBmaXJzdFdpZGdldFdpZHRoID0gc2Vjb25kQ29sdW1uV2lkZ2V0ID8gMSA6IDI7CisKKyAgICAg
ICAgZ3RrX2dyaWRfYXR0YWNoKEdUS19HUklEKGdyaWQpLCBmaXJzdENvbHVtbldpZGdldCwgMCwg
cm93TnVtYmVyLCBmaXJzdFdpZGdldFdpZHRoLCAxKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zZXRf
aGV4cGFuZChmaXJzdENvbHVtbldpZGdldCwgVFJVRSk7CisgICAgICAgIGd0a193aWRnZXRfc2V0
X3ZleHBhbmQoZmlyc3RDb2x1bW5XaWRnZXQsIFRSVUUpOworICAgICAgICBndGtfd2lkZ2V0X3No
b3coZmlyc3RDb2x1bW5XaWRnZXQpOworCisgICAgICAgIGlmIChzZWNvbmRDb2x1bW5XaWRnZXQp
IHsKKyAgICAgICAgICAgIGd0a19ncmlkX2F0dGFjaChHVEtfR1JJRChncmlkKSwgc2Vjb25kQ29s
dW1uV2lkZ2V0LCAxLCByb3dOdW1iZXIsIDEsIDEpOworICAgICAgICAgICAgZ3RrX3dpZGdldF9z
ZXRfaGV4cGFuZChzZWNvbmRDb2x1bW5XaWRnZXQsIFRSVUUpOworICAgICAgICAgICAgZ3RrX3dp
ZGdldF9zZXRfdmV4cGFuZChzZWNvbmRDb2x1bW5XaWRnZXQsIFRSVUUpOworICAgICAgICAgICAg
Z3RrX3dpZGdldF9zaG93KHNlY29uZENvbHVtbldpZGdldCk7CisgICAgICAgIH0KKworICAgICAg
ICBmaXJzdENvbHVtbldpZGdldCA9IHZhX2FyZyhhcmd1bWVudExpc3QsIEd0a1dpZGdldCopOwor
ICAgICAgICByb3dOdW1iZXIrKzsKKyAgICB9CisKKyAgICB2YV9lbmQoYXJndW1lbnRMaXN0KTsK
KworICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKGJveCksIGdyaWQsIEZBTFNFLCBGQUxT
RSwgMCk7CisgICAgZ3RrX3dpZGdldF9zaG93KGdyaWQpOworfQorCitzdGF0aWMgR3RrV2lkZ2V0
KiBjcmVhdGVMYWJlbChjb25zdCBjaGFyKiBsYWJlbFN0cmluZywgaW50IGhvcml6b250YWxQYWRk
aW5nID0gMCkKK3sKKyAgICBHdGtXaWRnZXQqIGxhYmVsID0gZ3RrX2xhYmVsX25ldyhsYWJlbFN0
cmluZyk7CisgICAgZ3RrX21pc2Nfc2V0X2FsaWdubWVudChHVEtfTUlTQyhsYWJlbCksIDAsIDAu
NSk7CisgICAgaWYgKGhvcml6b250YWxQYWRkaW5nKQorICAgICAgICBndGtfbWlzY19zZXRfcGFk
ZGluZyhHVEtfTUlTQyhsYWJlbCksIDAsIGhvcml6b250YWxQYWRkaW5nKTsKKyAgICByZXR1cm4g
bGFiZWw7Cit9CisKK3N0YXRpYyBHdGtXaWRnZXQqIGNyZWF0ZUVudHJ5KEd0a1dpZGdldCoqIG1l
bWJlcikKK3sKKyAgICAqbWVtYmVyID0gZ3RrX2VudHJ5X25ldygpOworICAgIGd0a19lbnRyeV9z
ZXRfYWN0aXZhdGVzX2RlZmF1bHQoR1RLX0VOVFJZKCptZW1iZXIpLCBUUlVFKTsKKyAgICByZXR1
cm4gKm1lbWJlcjsKK30KKworc3RhdGljIHZvaWQgd2Via2l0QXV0aGVudGljYXRpb25EaWFsb2dJ
bml0aWFsaXplKFdlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nKiBhdXRoRGlhbG9nKQogewogICAg
IEd0a1dpZGdldCogZnJhbWUgPSBndGtfZnJhbWVfbmV3KDApOwogICAgIGd0a19mcmFtZV9zZXRf
c2hhZG93X3R5cGUoR1RLX0ZSQU1FKGZyYW1lKSwgR1RLX1NIQURPV19JTik7CkBAIC03NiwxNiAr
MTQ2LDYyIEBAIHN0YXRpYyB2b2lkIHdlYmtpdEF1dGhlbnRpY2F0aW9uRGlhbG9nSW5pdGlhbGl6
ZShXZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZyogYXV0CiAgICAgZ3RrX2JveF9wYWNrX2VuZChH
VEtfQk9YKGJ1dHRvbkJveCksIGJ1dHRvbiwgRkFMU0UsIFRSVUUsIDApOwogICAgIGd0a193aWRn
ZXRfc2hvdyhidXR0b24pOwogCisgICAgV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2dQcml2YXRl
KiBwcml2ID0gYXV0aERpYWxvZy0+cHJpdjsKICAgICBidXR0b24gPSBndGtfYnV0dG9uX25ld19m
cm9tX3N0b2NrKEdUS19TVE9DS19PSyk7Ci0gICAgYXV0aERpYWxvZy0+cHJpdi0+ZGVmYXVsdEJ1
dHRvbiA9IGJ1dHRvbjsKKyAgICBwcml2LT5kZWZhdWx0QnV0dG9uID0gYnV0dG9uOwogICAgIGdf
c2lnbmFsX2Nvbm5lY3QoYnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0sob2tCdXR0b25DbGlj
a2VkKSwgYXV0aERpYWxvZyk7CiAgICAgZ3RrX3dpZGdldF9zZXRfY2FuX2RlZmF1bHQoYnV0dG9u
LCBUUlVFKTsKICAgICBndGtfYm94X3BhY2tfZW5kKEdUS19CT1goYnV0dG9uQm94KSwgYnV0dG9u
LCBGQUxTRSwgVFJVRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGJ1dHRvbik7CiAKLSAgICBh
dXRoRGlhbG9nLT5wcml2LT5hdXRoV2lkZ2V0ID0gd2Via2l0QXV0aGVudGljYXRpb25XaWRnZXRO
ZXcod2Via2l0QXV0aGVudGljYXRpb25SZXF1ZXN0R2V0QXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
YXV0aERpYWxvZy0+cHJpdi0+cmVxdWVzdC5nZXQoKSktPmNvcmUoKSwgY3JlZGVudGlhbFN0b3Jh
Z2VNb2RlKTsKLSAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh2Qm94KSwgYXV0aERpYWxv
Zy0+cHJpdi0+YXV0aFdpZGdldCwgVFJVRSwgVFJVRSwgMCk7Ci0gICAgZ3RrX3dpZGdldF9zaG93
KGF1dGhEaWFsb2ctPnByaXYtPmF1dGhXaWRnZXQpOworICAgIEd0a1dpZGdldCogYXV0aEJveCA9
IGd0a19ib3hfbmV3KEdUS19PUklFTlRBVElPTl9IT1JJWk9OVEFMLCAxMik7CisgICAgZ3RrX2Nv
bnRhaW5lcl9zZXRfYm9yZGVyX3dpZHRoKEdUS19DT05UQUlORVIoYXV0aEJveCksIDUpOworCisg
ICAgR3RrV2lkZ2V0KiBpY29uID0gZ3RrX2ltYWdlX25ld19mcm9tX3N0b2NrKEdUS19TVE9DS19E
SUFMT0dfQVVUSEVOVElDQVRJT04sIEdUS19JQ09OX1NJWkVfRElBTE9HKTsKKyAgICBndGtfbWlz
Y19zZXRfYWxpZ25tZW50KEdUS19NSVNDKGljb24pLCAwLjUsIDAuMCk7CisgICAgZ3RrX2JveF9w
YWNrX3N0YXJ0KEdUS19CT1goYXV0aEJveCksIGljb24sIEZBTFNFLCBGQUxTRSwgMCk7CisgICAg
Z3RrX3dpZGdldF9zaG93KGljb24pOworCisgICAgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmIGNoYWxsZW5nZSA9IHdlYmtpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdEdldEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHByaXYtPnJlcXVlc3QuZ2V0KCkpLT5jb3JlKCk7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiBwcm9tcHQoZ19zdHJkdXBfcHJpbnRmKF8oIlRoZSBzaXRlICVzOiVp
IHJlcXVlc3RzIGEgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIiksCisgICAgICAgIGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UoKS5ob3N0KCkudXRmOCgpLmRhdGEoKSwgY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLnBvcnQoKSkpOworICAgIHByaXYtPnJlbWVtYmVyQ2hlY2tCdXR0b24gPSBndGtf
Y2hlY2tfYnV0dG9uX25ld193aXRoX21uZW1vbmljKF8oIl9SZW1lbWJlciBwYXNzd29yZCIpKTsK
KyAgICBndGtfbGFiZWxfc2V0X2xpbmVfd3JhcChHVEtfTEFCRUwoZ3RrX2Jpbl9nZXRfY2hpbGQo
R1RLX0JJTihwcml2LT5yZW1lbWJlckNoZWNrQnV0dG9uKSkpLCBUUlVFKTsKKworICAgIFN0cmlu
ZyByZWFsbSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5yZWFsbSgpOworICAgIGlmICgh
cmVhbG0uaXNFbXB0eSgpKSB7CisgICAgICAgIHBhY2tUd29Db2x1bW5MYXlvdXRJbkJveCgKKyAg
ICAgICAgICAgIGF1dGhCb3gsCisgICAgICAgICAgICBjcmVhdGVMYWJlbChwcm9tcHQuZ2V0KCks
IDYpLCBudWxscHRyLAorICAgICAgICAgICAgY3JlYXRlTGFiZWwoXygiU2VydmVyIG1lc3NhZ2U6
IikpLCBjcmVhdGVMYWJlbChyZWFsbS51dGY4KCkuZGF0YSgpKSwKKyAgICAgICAgICAgIGNyZWF0
ZUxhYmVsKF8oIlVzZXJuYW1lOiIpKSwgY3JlYXRlRW50cnkoJnByaXYtPmxvZ2luRW50cnkpLAor
ICAgICAgICAgICAgY3JlYXRlTGFiZWwoXygiUGFzc3dvcmQ6IikpLCBjcmVhdGVFbnRyeSgmcHJp
di0+cGFzc3dvcmRFbnRyeSksCisgICAgICAgICAgICBwcml2LT5yZW1lbWJlckNoZWNrQnV0dG9u
LCBudWxscHRyLAorICAgICAgICAgICAgbnVsbHB0cik7CisKKyAgICB9IGVsc2UgeworICAgICAg
ICBwYWNrVHdvQ29sdW1uTGF5b3V0SW5Cb3goCisgICAgICAgICAgICBhdXRoQm94LAorICAgICAg
ICAgICAgY3JlYXRlTGFiZWwocHJvbXB0LmdldCgpLCA2KSwgbnVsbHB0ciwKKyAgICAgICAgICAg
IGNyZWF0ZUxhYmVsKF8oIlVzZXJuYW1lOiIpKSwgY3JlYXRlRW50cnkoJnByaXYtPmxvZ2luRW50
cnkpLAorICAgICAgICAgICAgY3JlYXRlTGFiZWwoXygiUGFzc3dvcmQ6IikpLCBjcmVhdGVFbnRy
eSgmcHJpdi0+cGFzc3dvcmRFbnRyeSksCisgICAgICAgICAgICBwcml2LT5yZW1lbWJlckNoZWNr
QnV0dG9uLCBudWxscHRyLCBudWxscHRyLAorICAgICAgICAgICAgbnVsbHB0cik7CisgICAgfQor
ICAgIGd0a19lbnRyeV9zZXRfdmlzaWJpbGl0eShHVEtfRU5UUlkocHJpdi0+cGFzc3dvcmRFbnRy
eSksIEZBTFNFKTsKKyAgICBndGtfd2lkZ2V0X3NldF92aXNpYmxlKHByaXYtPnJlbWVtYmVyQ2hl
Y2tCdXR0b24sIHByaXYtPmNyZWRlbnRpYWxTdG9yYWdlTW9kZSAhPSBEaXNhbGxvd1BlcnNpc3Rl
bnRTdG9yYWdlKTsKKworICAgIGNvbnN0IFdlYkNvcmU6OkNyZWRlbnRpYWwmIGNyZWRlbnRpYWxG
cm9tUGVyc2lzdGVudFN0b3JhZ2UgPSBjaGFsbGVuZ2UucHJvcG9zZWRDcmVkZW50aWFsKCk7Cisg
ICAgaWYgKCFjcmVkZW50aWFsRnJvbVBlcnNpc3RlbnRTdG9yYWdlLmlzRW1wdHkoKSkgeworICAg
ICAgICBndGtfZW50cnlfc2V0X3RleHQoR1RLX0VOVFJZKHByaXYtPmxvZ2luRW50cnkpLCBjcmVk
ZW50aWFsRnJvbVBlcnNpc3RlbnRTdG9yYWdlLnVzZXIoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAg
ICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRSWShwcml2LT5wYXNzd29yZEVudHJ5KSwgY3Jl
ZGVudGlhbEZyb21QZXJzaXN0ZW50U3RvcmFnZS5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICBndGtfdG9nZ2xlX2J1dHRvbl9zZXRfYWN0aXZlKEdUS19UT0dHTEVfQlVUVE9OKHBy
aXYtPnJlbWVtYmVyQ2hlY2tCdXR0b24pLCBUUlVFKTsKKyAgICB9CisKKyAgICBndGtfd2lkZ2V0
X2dyYWJfZm9jdXMocHJpdi0+bG9naW5FbnRyeSk7CisKKyAgICBndGtfYm94X3BhY2tfc3RhcnQo
R1RLX0JPWCh2Qm94KSwgYXV0aEJveCwgVFJVRSwgVFJVRSwgMCk7CisgICAgZ3RrX3dpZGdldF9z
aG93KGF1dGhCb3gpOwogCiAgICAgZ3RrX2JveF9wYWNrX2VuZChHVEtfQk9YKHZCb3gpLCBidXR0
b25Cb3gsIEZBTFNFLCBUUlVFLCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3coYnV0dG9uQm94KTsK
QEAgLTE1OSw2ICsyNzUsNyBAQCBHdGtXaWRnZXQqIHdlYmtpdEF1dGhlbnRpY2F0aW9uRGlhbG9n
TmV3KFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCogcmVxdWVzdCwgQwogewogICAgIFdlYktp
dEF1dGhlbnRpY2F0aW9uRGlhbG9nKiBhdXRoRGlhbG9nID0gV0VCS0lUX0FVVEhFTlRJQ0FUSU9O
X0RJQUxPRyhnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfQVVUSEVOVElDQVRJT05fRElBTE9HLCBO
VUxMKSk7CiAgICAgYXV0aERpYWxvZy0+cHJpdi0+cmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAgd2Vi
a2l0QXV0aGVudGljYXRpb25EaWFsb2dJbml0aWFsaXplKGF1dGhEaWFsb2csIG1vZGUpOworICAg
IGF1dGhEaWFsb2ctPnByaXYtPmNyZWRlbnRpYWxTdG9yYWdlTW9kZSA9IG1vZGU7CisgICAgd2Vi
a2l0QXV0aGVudGljYXRpb25EaWFsb2dJbml0aWFsaXplKGF1dGhEaWFsb2cpOwogICAgIHJldHVy
biBHVEtfV0lER0VUKGF1dGhEaWFsb2cpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dGhlbnRpY2F0aW9uRGlhbG9nLmgKaW5k
ZXggZTVlNjJhNy4uMGU1MDcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2cuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRoZW50aWNhdGlvbkRpYWxvZy5oCkBAIC0yMSwx
MCArMjEsMTMgQEAKICNkZWZpbmUgV2ViS2l0QXV0aGVudGljYXRpb25EaWFsb2dfaAogCiAjaW5j
bHVkZSAiV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmgiCi0jaW5jbHVkZSAiV2ViS2l0QXV0
aGVudGljYXRpb25XaWRnZXQuaCIKLSNpbmNsdWRlICJXZWJLaXRXZWJWaWV3LmgiCiAjaW5jbHVk
ZSA8Z3RrL2d0ay5oPgogCitlbnVtIENyZWRlbnRpYWxTdG9yYWdlTW9kZSB7CisgICAgQWxsb3dQ
ZXJzaXN0ZW50U3RvcmFnZSwgLy8gVGhlIHVzZXIgaXMgYXNrZWQgd2hldGhlciB0byBzdG9yZSBj
cmVkZW50aWFsIGluZm9ybWF0aW9uLgorICAgIERpc2FsbG93UGVyc2lzdGVudFN0b3JhZ2UgLy8g
Q3JlZGVudGlhbCBpbmZvcm1hdGlvbiBpcyBvbmx5IGtlcHQgaW4gdGhlIHNlc3Npb24uCit9Owor
CiBHX0JFR0lOX0RFQ0xTCiAKICNkZWZpbmUgV0VCS0lUX1RZUEVfQVVUSEVOVElDQVRJT05fRElB
TE9HICAgICAgICAgICAgKHdlYmtpdF9hdXRoZW50aWNhdGlvbl9kaWFsb2dfZ2V0X3R5cGUoKSkK
</data>
<flag name="review"
          id="262639"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
      

    </bug>

</bugzilla>