browserscale-ts 1.0.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +3 -3
- package/dist/browser.js +2 -2
- package/dist/browserscale.browser.js +322 -87
- package/dist/client.d.ts +70 -27
- package/dist/client.js +106 -45
- package/dist/errors.d.ts +153 -4
- package/dist/errors.js +120 -4
- package/dist/gen/wrc_pb.d.ts +716 -4
- package/dist/gen/wrc_pb.js +140 -55
- package/dist/index.d.ts +27 -3
- package/dist/index.js +31 -2
- package/dist/internal/convert.d.ts +16 -5
- package/dist/internal/convert.js +126 -10
- package/dist/options.d.ts +25 -0
- package/dist/types.d.ts +77 -0
- package/package.json +1 -1
|
@@ -3799,48 +3799,49 @@ function serviceDesc(file, path, ...paths) {
|
|
|
3799
3799
|
}
|
|
3800
3800
|
|
|
3801
3801
|
// src/gen/wrc_pb.ts
|
|
3802
|
-
var file_wrc = /* @__PURE__ */ fileDesc("Cgl3cmMucHJvdG8SD2Jyb3dzZXJzY2FsZS52MSI7CgRSZWN0EgkKAXgYASABKAESCQoBeRgCIAEoARINCgV3aWR0aBgDIAEoARIOCgZoZWlnaHQYBCABKAEihgIKCUZyYW1lSW5mbxIQCghmcmFtZV9pZBgBIAEoCRILCgN1cmwYAiABKAkSEAoIaXNfb29waWYYAyABKAgSFgoOaGFzX2pzX2NvbnRleHQYBCABKAgSEgoKaXNfbG9hZGluZxgFIAEoCBISCgppc192aXNpYmxlGAYgASgIEiwKDWFic29sdXRlX3JlY3QYByABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIsCg1yZWxhdGl2ZV9yZWN0GAggASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSLAoIY2hpbGRyZW4YCSADKAsyGi5icm93c2Vyc2NhbGUudjEuRnJhbWVJbmZvIqwBCghQYWdlSW5mbxIPCgdwYWdlX2lkGAEgASgJEhoKEmJyb3dzZXJfY29udGV4dF9pZBgCIAEoCRILCgN1cmwYAyABKAkSDQoFdGl0bGUYBCABKAkSJwoIdmlld3BvcnQYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIuCgpmcmFtZV90cmVlGAYgASgLMhouYnJvd3NlcnNjYWxlLnYxLkZyYW1lSW5mbyIlCgZIZWFkZXISDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSKAAQoSSW50ZXJjZXB0ZWRSZXF1ZXN0Eg4KBm1ldGhvZBgBIAEoCRILCgN1cmwYAiABKAkSKAoHaGVhZGVycxgDIAMoCzIXLmJyb3dzZXJzY2FsZS52MS5IZWFkZXISDAoEYm9keRgEIAEoCRIVCg1yZXNvdXJjZV90eXBlGAUgASgJIm8KE0ludGVyY2VwdGVkUmVzcG9uc2USCwoDdXJsGAEgASgJEhMKC3N0YXR1c19jb2RlGAIgASgFEigKB2hlYWRlcnMYAyADKAsyFy5icm93c2Vyc2NhbGUudjEuSGVhZGVyEgwKBGJvZHkYBCABKAkijgEKEkhlYWRlck1vZGlmaWNhdGlvbhIMCgRuYW1lGAEgASgJEhIKBXZhbHVlGAIgASgJSACIAQESDgoGYWN0aW9uGAMgASgJEhMKBmJlZm9yZRgEIAEoCUgBiAEBEhIKBWFmdGVyGAUgASgJSAKIAQFCCAoGX3ZhbHVlQgkKB19iZWZvcmVCCAoGX2FmdGVyIk0KEkNvb2tpZVBhcnRpdGlvbktleRIWCg50b3BfbGV2ZWxfc2l0ZRgBIAEoCRIfChdoYXNfY3Jvc3Nfc2l0ZV9hbmNlc3RvchgCIAEoCCK/AwoLQ29va2llUGFyYW0SDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIOCgZkb21haW4YBCABKAkSDAoEcGF0aBgFIAEoCRITCgZzZWN1cmUYBiABKAhIAYgBARIWCglodHRwX29ubHkYByABKAhIAogBARIWCglzYW1lX3NpdGUYCCABKAlIA4gBARIUCgdleHBpcmVzGAkgASgBSASIAQESFQoIcHJpb3JpdHkYCiABKAlIBYgBARIaCg1zb3VyY2Vfc2NoZW1lGAsgASgJSAaIAQESGAoLc291cmNlX3BvcnQYDCABKAVIB4gBARI/Cg1wYXJ0aXRpb25fa2V5GA0gASgLMiMuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcnRpdGlvbktleUgIiAEBQgYKBF91cmxCCQoHX3NlY3VyZUIMCgpfaHR0cF9vbmx5QgwKCl9zYW1lX3NpdGVCCgoIX2V4cGlyZXNCCwoJX3ByaW9yaXR5QhAKDl9zb3VyY2Vfc2NoZW1lQg4KDF9zb3VyY2VfcG9ydEIQCg5fcGFydGl0aW9uX2tleSKtAQoNV2FpdENvbmRpdGlvbhIVCghzZWxlY3RvchgBIAEoCUgAiAEBEhoKDWpzX2V4cHJlc3Npb24YAiABKAlIAYgBARIUCgd2aXNpYmxlGAMgASgISAKIAQESGAoLc3RlYWR5X3RpbWUYBCABKAFIA4gBAUILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCgoIX3Zpc2libGVCDgoMX3N0ZWFkeV90aW1lIoEBCgpXYWl0UmVzdWx0Eg0KBWluZGV4GAEgASgFEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRISCgppc192aXNpYmxlGAQgASgIEiUKBmJvdW5kcxgFIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0IqYBCg1FbGVtZW50UmVzdWx0Eg8KB3N1Y2Nlc3MYASABKAgSEAoIZnJhbWVfaWQYAiABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAMgASgFEhIKCmlzX3Zpc2libGUYBCABKAgSJQoGYm91bmRzGAUgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSDgoGcm9vdF94GAYgASgBEg4KBnJvb3RfeRgHIAEoASKIAQoKRHJhZ1Jlc3VsdBIPCgdzdWNjZXNzGAEgASgIEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRIPCgdzdGFydF94GAQgASgBEg8KB3N0YXJ0X3kYBSABKAESDQoFZW5kX3gYBiABKAESDQoFZW5kX3kYByABKAEiWwoSU2VsZWN0T3B0aW9uUmVzdWx0EhYKDnNlbGVjdGVkX2luZGV4GAEgASgFEhYKDnNlbGVjdGVkX3ZhbHVlGAIgASgJEhUKDXNlbGVjdGVkX3RleHQYAyABKAki5gEKD1NldFByb3h5UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSFwoKcHJveHlfaG9zdBgDIAEoCUgAiAEBEhcKCnByb3h5X3BvcnQYBCABKAVIAYgBARIbCg5wcm94eV91c2VybmFtZRgFIAEoCUgCiAEBEhsKDnByb3h5X3Bhc3N3b3JkGAYgASgJSAOIAQFCDQoLX3Byb3h5X2hvc3RCDQoLX3Byb3h5X3BvcnRCEQoPX3Byb3h5X3VzZXJuYW1lQhEKD19wcm94eV9wYXNzd29yZCI2Cg9HZXRQYWdlc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIjwKEEdldFBhZ2VzUmVzcG9uc2USKAoFcGFnZXMYASADKAsyGS5icm93c2Vyc2NhbGUudjEuUGFnZUluZm8imgEKD05hdmlnYXRlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRILCgN1cmwYBCABKAkSFQoIcmVmZXJyZXIYBSABKAlIAIgBARIUCgd0aW1lb3V0GAYgASgBSAGIAQFCCwoJX3JlZmVycmVyQgoKCF90aW1lb3V0IjEKEE5hdmlnYXRlUmVzcG9uc2USEAoIZnJhbWVfaWQYASABKAkSCwoDdXJsGAIgASgJIrYBCg9Mb2FkSFRNTFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDdXJsGAQgASgJEgwKBGh0bWwYBSABKAkSKAoHaGVhZGVycxgGIAMoCzIXLmJyb3dzZXJzY2FsZS52MS5IZWFkZXISGAoLc3RhdHVzX2NvZGUYByABKAVIAIgBAUIOCgxfc3RhdHVzX2NvZGUifwoPRXZhbHVhdGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhIKCmV4cHJlc3Npb24YBCABKAkSFQoIZnJhbWVfaWQYBSABKAlIAIgBAUILCglfZnJhbWVfaWQidgoQRXZhbHVhdGVSZXNwb25zZRIOCgZyZXN1bHQYASABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAIgASgFEhIKCmlzX3Zpc2libGUYAyABKAgSJQoGYm91bmRzGAQgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QiwgEKEFdhaXRGb3JBbnlQYXJhbXMSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSMgoKY29uZGl0aW9ucxgEIAMoCzIeLmJyb3dzZXJzY2FsZS52MS5XYWl0Q29uZGl0aW9uEhUKCGZyYW1lX2lkGAUgASgJSACIAQESFAoHdGltZW91dBgGIAEoAUgBiAEBQgsKCV9mcmFtZV9pZEIKCghfdGltZW91dCL1AgoTU2VsZWN0T3B0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEhIKBWluZGV4GAggASgFSASIAQESEgoFdmFsdWUYCSABKAlIBYgBARIRCgR0ZXh0GAogASgJSAaIAQESGAoLZmlyZV9ldmVudHMYCyABKAhIB4gBAUISChBfYmFja2VuZF9ub2RlX2lkQgsKCV9zZWxlY3RvckIQCg5fanNfZXhwcmVzc2lvbkILCglfZnJhbWVfaWRCCAoGX2luZGV4QggKBl92YWx1ZUIHCgVfdGV4dEIOCgxfZmlyZV9ldmVudHMi7wEKD1Njcm9sbFRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZCKZAgoNTW92ZVRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEg4KAXgYCCABKAFIBIgBARIOCgF5GAkgASgBSAWIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgQKAl94QgQKAl95IoIDCgxDbGlja1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSHAoPYmFja2VuZF9ub2RlX2lkGAQgASgFSACIAQESFQoIc2VsZWN0b3IYBSABKAlIAYgBARIaCg1qc19leHByZXNzaW9uGAYgASgJSAKIAQESFQoIZnJhbWVfaWQYByABKAlIA4gBARITCgZidXR0b24YCCABKAlIBIgBARIYCgtjbGlja19jb3VudBgJIAEoBUgFiAEBEg4KAXgYCiABKAFIBogBARIOCgF5GAsgASgBSAeIAQESEwoGYWN0aW9uGAwgASgJSAiIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgkKB19idXR0b25CDgoMX2NsaWNrX2NvdW50QgQKAl94QgQKAl95QgkKB19hY3Rpb24igwMKC0RyYWdSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESFQoIb2Zmc2V0X3gYCCABKAFIBIgBARIVCghvZmZzZXRfeRgJIAEoAUgFiAEBEhcKCmFic29sdXRlX3gYCiABKAFIBogBARIXCgphYnNvbHV0ZV95GAsgASgBSAeIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgsKCV9vZmZzZXRfeEILCglfb2Zmc2V0X3lCDQoLX2Fic29sdXRlX3hCDQoLX2Fic29sdXRlX3kiowIKC0ZpbGxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESDAoEdGV4dBgIIAEoCRIYCgtjbGVhcl9maXJzdBgJIAEoCEgEiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZEIOCgxfY2xlYXJfZmlyc3QiTAoTU2V0QmxvY2tMaXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkiYQoVU2V0U3RhdGljUGF0aHNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIQCghwYXR0ZXJucxgDIAMoCRIRCglibG9iX25hbWUYBCABKAkiiAEKGFdhaXRGb3JBbnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkSEwoLYWJvcnRfZmxhZ3MYBCADKAUSFAoHdGltZW91dBgFIAEoAUgAiAEBQgoKCF90aW1lb3V0ImAKGVdhaXRGb3JBbnlSZXF1ZXN0UmVzcG9uc2USDQoFaW5kZXgYASABKAUSNAoHcmVxdWVzdBgCIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiiQEKGVdhaXRGb3JBbnlSZXNwb25zZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhAKCHBhdHRlcm5zGAMgAygJEhMKC2Fib3J0X2ZsYWdzGAQgAygFEhQKB3RpbWVvdXQYBSABKAFIAIgBAUIKCghfdGltZW91dCJjChpXYWl0Rm9yQW55UmVzcG9uc2VSZXNwb25zZRINCgVpbmRleBgBIAEoBRI2CghyZXNwb25zZRgCIAEoCzIkLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlc3BvbnNlIsoBChRNb2RpZnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEwoLdXJsX3BhdHRlcm4YAyABKAkSOgoNbW9kaWZpY2F0aW9ucxgEIAMoCzIjLmJyb3dzZXJzY2FsZS52MS5IZWFkZXJNb2RpZmljYXRpb24SEQoEYm9keRgFIAEoCUgAiAEBEhQKB3RpbWVvdXQYBiABKAFIAYgBAUIHCgVfYm9keUIKCghfdGltZW91dCJNChVNb2RpZnlSZXF1ZXN0UmVzcG9uc2USNAoHcmVxdWVzdBgBIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiOAoRR2V0Q29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIkMKEkdldENvb2tpZXNSZXNwb25zZRItCgdjb29raWVzGAEgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtImcKEVNldENvb2tpZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRItCgdjb29raWVzGAMgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtIjoKE0NsZWFyQ29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIikKC1N0b3JhZ2VJdGVtEgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCSJRChJTdG9yYWdlT3JpZ2luRW50cnkSDgoGb3JpZ2luGAEgASgJEisKBWl0ZW1zGAIgAygLMhwuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VJdGVtIlgKEUdldFN0b3JhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRITCgZvcmlnaW4YAyABKAlIAIgBAUIJCgdfb3JpZ2luIkoKEkdldFN0b3JhZ2VSZXNwb25zZRI0CgdzdG9yYWdlGAEgAygLMiMuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VPcmlnaW5FbnRyeSKYAQoRU2V0U3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEjQKB3N0b3JhZ2UYAyADKAsyIy5icm93c2Vyc2NhbGUudjEuU3RvcmFnZU9yaWdpbkVudHJ5EhgKC2NsZWFyX2ZpcnN0GAQgASgISACIAQFCDgoMX2NsZWFyX2ZpcnN0IloKE0NsZWFyU3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhMKBm9yaWdpbhgDIAEoCUgAiAEBQgkKB19vcmlnaW4ihwEKDUdldERPTVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBARISCgVkZXB0aBgFIAEoBUgBiAEBQgsKCV9mcmFtZV9pZEIICgZfZGVwdGgiHQoOR2V0RE9NUmVzcG9uc2USCwoDZG9tGAEgASgJIr8BChVHZXRPYnNlcnZhdGlvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSIwoWbWF4X2VsZW1lbnRzX3Blcl9mcmFtZRgEIAEoBUgAiAEBEhwKD21heF90ZXh0X2xlbmd0aBgFIAEoBUgBiAEBQhkKF19tYXhfZWxlbWVudHNfcGVyX2ZyYW1lQhIKEF9tYXhfdGV4dF9sZW5ndGgiTAoWR2V0T2JzZXJ2YXRpb25SZXNwb25zZRIYChBvYnNlcnZhdGlvbl90ZXh0GAEgASgJEhgKEG9ic2VydmF0aW9uX2pzb24YAiABKAkibQoRR2V0RE9NSGFzaFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBAUILCglfZnJhbWVfaWQiIgoSR2V0RE9NSGFzaFJlc3BvbnNlEgwKBGhhc2gYASABKAkiZgoYSW5zcGVjdEF0UG9zaXRpb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEgkKAXgYBCABKAESCQoBeRgFIAEoASKpAQoZSW5zcGVjdEF0UG9zaXRpb25SZXNwb25zZRIXCg9iYWNrZW5kX25vZGVfaWQYASABKAUSEAoIZnJhbWVfaWQYAiABKAkSEAoIdGFnX25hbWUYAyABKAkSFAoMdGV4dF9jb250ZW50GAQgASgJEhIKCmlzX3Zpc2libGUYBSABKAgSJQoGYm91bmRzGAYgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QiiQEKFEhpZ2hsaWdodE5vZGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBRIVCghmcmFtZV9pZBgFIAEoCUgAiAEBQgsKCV9mcmFtZV9pZCJXChFJbnNlcnRUZXh0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIMCgR0ZXh0GAQgASgJIroBCg9QcmVzc0tleVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDa2V5GAQgASgJEhEKBGNvZGUYBSABKAlIAIgBARIWCgltb2RpZmllcnMYBiABKAVIAYgBARIVCghsb2NhdGlvbhgHIAEoBUgCiAEBQgcKBV9jb2RlQgwKCl9tb2RpZmllcnNCCwoJX2xvY2F0aW9uIrwBChFSZWxlYXNlS2V5UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRILCgNrZXkYBCABKAkSEQoEY29kZRgFIAEoCUgAiAEBEhYKCW1vZGlmaWVycxgGIAEoBUgBiAEBEhUKCGxvY2F0aW9uGAcgASgFSAKIAQFCBwoFX2NvZGVCDAoKX21vZGlmaWVyc0ILCglfbG9jYXRpb24iSwoTR2V0U2VsZWN0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCSIkChRHZXRTZWxlY3Rpb25SZXNwb25zZRIMCgR0ZXh0GAEgASgJIosBChFTY3JlZW5zaG90UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRITCgZmb3JtYXQYBCABKAlIAIgBARIUCgdxdWFsaXR5GAUgASgFSAGIAQFCCQoHX2Zvcm1hdEIKCghfcXVhbGl0eSJIChJTY3JlZW5zaG90UmVzcG9uc2USEwoLZGF0YV9iYXNlNjQYASABKAkSDQoFd2lkdGgYAiABKAUSDgoGaGVpZ2h0GAMgASgFImQKE1NvbHZlQ2FwdGNoYVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhIKCnRpbWVvdXRfbXMYAyABKAUSFAoMcmV0cnlfYW1vdW50GAQgASgFIiYKFFNvbHZlQ2FwdGNoYVJlc3BvbnNlEg4KBnJlc3VsdBgBIAEoCTL/FQoHQnJvd3NlchJECghTZXRQcm94eRIgLmJyb3dzZXJzY2FsZS52MS5TZXRQcm94eVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTwoIR2V0UGFnZXMSIC5icm93c2Vyc2NhbGUudjEuR2V0UGFnZXNSZXF1ZXN0GiEuYnJvd3NlcnNjYWxlLnYxLkdldFBhZ2VzUmVzcG9uc2USTwoITmF2aWdhdGUSIC5icm93c2Vyc2NhbGUudjEuTmF2aWdhdGVSZXF1ZXN0GiEuYnJvd3NlcnNjYWxlLnYxLk5hdmlnYXRlUmVzcG9uc2USRAoITG9hZEhUTUwSIC5icm93c2Vyc2NhbGUudjEuTG9hZEhUTUxSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ek8KCEV2YWx1YXRlEiAuYnJvd3NlcnNjYWxlLnYxLkV2YWx1YXRlUmVxdWVzdBohLmJyb3dzZXJzY2FsZS52MS5FdmFsdWF0ZVJlc3BvbnNlEkwKCldhaXRGb3JBbnkSIS5icm93c2Vyc2NhbGUudjEuV2FpdEZvckFueVBhcmFtcxobLmJyb3dzZXJzY2FsZS52MS5XYWl0UmVzdWx0ElkKDFNlbGVjdE9wdGlvbhIkLmJyb3dzZXJzY2FsZS52MS5TZWxlY3RPcHRpb25SZXF1ZXN0GiMuYnJvd3NlcnNjYWxlLnYxLlNlbGVjdE9wdGlvblJlc3VsdBJMCghTY3JvbGxUbxIgLmJyb3dzZXJzY2FsZS52MS5TY3JvbGxUb1JlcXVlc3QaHi5icm93c2Vyc2NhbGUudjEuRWxlbWVudFJlc3VsdBJICgZNb3ZlVG8SHi5icm93c2Vyc2NhbGUudjEuTW92ZVRvUmVxdWVzdBoeLmJyb3dzZXJzY2FsZS52MS5FbGVtZW50UmVzdWx0EkYKBUNsaWNrEh0uYnJvd3NlcnNjYWxlLnYxLkNsaWNrUmVxdWVzdBoeLmJyb3dzZXJzY2FsZS52MS5FbGVtZW50UmVzdWx0EkEKBERyYWcSHC5icm93c2Vyc2NhbGUudjEuRHJhZ1JlcXVlc3QaGy5icm93c2Vyc2NhbGUudjEuRHJhZ1Jlc3VsdBJECgRGaWxsEhwuYnJvd3NlcnNjYWxlLnYxLkZpbGxSZXF1ZXN0Gh4uYnJvd3NlcnNjYWxlLnYxLkVsZW1lbnRSZXN1bHQSTAoMU2V0QmxvY2tMaXN0EiQuYnJvd3NlcnNjYWxlLnYxLlNldEJsb2NrTGlzdFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUAoOU2V0U3RhdGljUGF0aHMSJi5icm93c2Vyc2NhbGUudjEuU2V0U3RhdGljUGF0aHNSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EmoKEVdhaXRGb3JBbnlSZXF1ZXN0EikuYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXF1ZXN0UmVxdWVzdBoqLmJyb3dzZXJzY2FsZS52MS5XYWl0Rm9yQW55UmVxdWVzdFJlc3BvbnNlEm0KEldhaXRGb3JBbnlSZXNwb25zZRIqLmJyb3dzZXJzY2FsZS52MS5XYWl0Rm9yQW55UmVzcG9uc2VSZXF1ZXN0GisuYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXNwb25zZVJlc3BvbnNlEl4KDU1vZGlmeVJlcXVlc3QSJS5icm93c2Vyc2NhbGUudjEuTW9kaWZ5UmVxdWVzdFJlcXVlc3QaJi5icm93c2Vyc2NhbGUudjEuTW9kaWZ5UmVxdWVzdFJlc3BvbnNlElUKCkdldENvb2tpZXMSIi5icm93c2Vyc2NhbGUudjEuR2V0Q29va2llc1JlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuR2V0Q29va2llc1Jlc3BvbnNlEkgKClNldENvb2tpZXMSIi5icm93c2Vyc2NhbGUudjEuU2V0Q29va2llc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTAoMQ2xlYXJDb29raWVzEiQuYnJvd3NlcnNjYWxlLnYxLkNsZWFyQ29va2llc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVQoKR2V0U3RvcmFnZRIiLmJyb3dzZXJzY2FsZS52MS5HZXRTdG9yYWdlUmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5HZXRTdG9yYWdlUmVzcG9uc2USSAoKU2V0U3RvcmFnZRIiLmJyb3dzZXJzY2FsZS52MS5TZXRTdG9yYWdlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCgxDbGVhclN0b3JhZ2USJC5icm93c2Vyc2NhbGUudjEuQ2xlYXJTdG9yYWdlUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJJCgZHZXRET00SHi5icm93c2Vyc2NhbGUudjEuR2V0RE9NUmVxdWVzdBofLmJyb3dzZXJzY2FsZS52MS5HZXRET01SZXNwb25zZRJVCgpHZXRET01IYXNoEiIuYnJvd3NlcnNjYWxlLnYxLkdldERPTUhhc2hSZXF1ZXN0GiMuYnJvd3NlcnNjYWxlLnYxLkdldERPTUhhc2hSZXNwb25zZRJhCg5HZXRPYnNlcnZhdGlvbhImLmJyb3dzZXJzY2FsZS52MS5HZXRPYnNlcnZhdGlvblJlcXVlc3QaJy5icm93c2Vyc2NhbGUudjEuR2V0T2JzZXJ2YXRpb25SZXNwb25zZRJqChFJbnNwZWN0QXRQb3NpdGlvbhIpLmJyb3dzZXJzY2FsZS52MS5JbnNwZWN0QXRQb3NpdGlvblJlcXVlc3QaKi5icm93c2Vyc2NhbGUudjEuSW5zcGVjdEF0UG9zaXRpb25SZXNwb25zZRJOCg1IaWdobGlnaHROb2RlEiUuYnJvd3NlcnNjYWxlLnYxLkhpZ2hsaWdodE5vZGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElUKClNjcmVlbnNob3QSIi5icm93c2Vyc2NhbGUudjEuU2NyZWVuc2hvdFJlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuU2NyZWVuc2hvdFJlc3BvbnNlEkgKCkluc2VydFRleHQSIi5icm93c2Vyc2NhbGUudjEuSW5zZXJ0VGV4dFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoIUHJlc3NLZXkSIC5icm93c2Vyc2NhbGUudjEuUHJlc3NLZXlSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKClJlbGVhc2VLZXkSIi5icm93c2Vyc2NhbGUudjEuUmVsZWFzZUtleVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSWwoMR2V0U2VsZWN0aW9uEiQuYnJvd3NlcnNjYWxlLnYxLkdldFNlbGVjdGlvblJlcXVlc3QaJS5icm93c2Vyc2NhbGUudjEuR2V0U2VsZWN0aW9uUmVzcG9uc2USWwoMU29sdmVDYXB0Y2hhEiQuYnJvd3NlcnNjYWxlLnYxLlNvbHZlQ2FwdGNoYVJlcXVlc3QaJS5icm93c2Vyc2NhbGUudjEuU29sdmVDYXB0Y2hhUmVzcG9uc2VCM1oxZ2l0aHViLmNvbS9icm93c2Vyc2NhbGUvYnJvd3NlcnNjYWxlLWdvL2dlbmVyYXRlZGIGcHJvdG8z", [file_google_protobuf_empty]);
|
|
3802
|
+
var file_wrc = /* @__PURE__ */ fileDesc("Cgl3cmMucHJvdG8SD2Jyb3dzZXJzY2FsZS52MSI7CgRSZWN0EgkKAXgYASABKAESCQoBeRgCIAEoARINCgV3aWR0aBgDIAEoARIOCgZoZWlnaHQYBCABKAEihgIKCUZyYW1lSW5mbxIQCghmcmFtZV9pZBgBIAEoCRILCgN1cmwYAiABKAkSEAoIaXNfb29waWYYAyABKAgSFgoOaGFzX2pzX2NvbnRleHQYBCABKAgSEgoKaXNfbG9hZGluZxgFIAEoCBISCgppc192aXNpYmxlGAYgASgIEiwKDWFic29sdXRlX3JlY3QYByABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIsCg1yZWxhdGl2ZV9yZWN0GAggASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSLAoIY2hpbGRyZW4YCSADKAsyGi5icm93c2Vyc2NhbGUudjEuRnJhbWVJbmZvIqwBCghQYWdlSW5mbxIPCgdwYWdlX2lkGAEgASgJEhoKEmJyb3dzZXJfY29udGV4dF9pZBgCIAEoCRILCgN1cmwYAyABKAkSDQoFdGl0bGUYBCABKAkSJwoIdmlld3BvcnQYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIuCgpmcmFtZV90cmVlGAYgASgLMhouYnJvd3NlcnNjYWxlLnYxLkZyYW1lSW5mbyIlCgZIZWFkZXISDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSKAAQoSSW50ZXJjZXB0ZWRSZXF1ZXN0Eg4KBm1ldGhvZBgBIAEoCRILCgN1cmwYAiABKAkSKAoHaGVhZGVycxgDIAMoCzIXLmJyb3dzZXJzY2FsZS52MS5IZWFkZXISDAoEYm9keRgEIAEoCRIVCg1yZXNvdXJjZV90eXBlGAUgASgJIm8KE0ludGVyY2VwdGVkUmVzcG9uc2USCwoDdXJsGAEgASgJEhMKC3N0YXR1c19jb2RlGAIgASgFEigKB2hlYWRlcnMYAyADKAsyFy5icm93c2Vyc2NhbGUudjEuSGVhZGVyEgwKBGJvZHkYBCABKAkijgEKEkhlYWRlck1vZGlmaWNhdGlvbhIMCgRuYW1lGAEgASgJEhIKBXZhbHVlGAIgASgJSACIAQESDgoGYWN0aW9uGAMgASgJEhMKBmJlZm9yZRgEIAEoCUgBiAEBEhIKBWFmdGVyGAUgASgJSAKIAQFCCAoGX3ZhbHVlQgkKB19iZWZvcmVCCAoGX2FmdGVyIk0KEkNvb2tpZVBhcnRpdGlvbktleRIWCg50b3BfbGV2ZWxfc2l0ZRgBIAEoCRIfChdoYXNfY3Jvc3Nfc2l0ZV9hbmNlc3RvchgCIAEoCCK/AwoLQ29va2llUGFyYW0SDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCRIQCgN1cmwYAyABKAlIAIgBARIOCgZkb21haW4YBCABKAkSDAoEcGF0aBgFIAEoCRITCgZzZWN1cmUYBiABKAhIAYgBARIWCglodHRwX29ubHkYByABKAhIAogBARIWCglzYW1lX3NpdGUYCCABKAlIA4gBARIUCgdleHBpcmVzGAkgASgBSASIAQESFQoIcHJpb3JpdHkYCiABKAlIBYgBARIaCg1zb3VyY2Vfc2NoZW1lGAsgASgJSAaIAQESGAoLc291cmNlX3BvcnQYDCABKAVIB4gBARI/Cg1wYXJ0aXRpb25fa2V5GA0gASgLMiMuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcnRpdGlvbktleUgIiAEBQgYKBF91cmxCCQoHX3NlY3VyZUIMCgpfaHR0cF9vbmx5QgwKCl9zYW1lX3NpdGVCCgoIX2V4cGlyZXNCCwoJX3ByaW9yaXR5QhAKDl9zb3VyY2Vfc2NoZW1lQg4KDF9zb3VyY2VfcG9ydEIQCg5fcGFydGl0aW9uX2tleSKtAQoNV2FpdENvbmRpdGlvbhIVCghzZWxlY3RvchgBIAEoCUgAiAEBEhoKDWpzX2V4cHJlc3Npb24YAiABKAlIAYgBARIUCgd2aXNpYmxlGAMgASgISAKIAQESGAoLc3RlYWR5X3RpbWUYBCABKAFIA4gBAUILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCgoIX3Zpc2libGVCDgoMX3N0ZWFkeV90aW1lIrsBCgpXYWl0UmVzdWx0Eg0KBWluZGV4GAEgASgFEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRISCgppc192aXNpYmxlGAQgASgIEiUKBmJvdW5kcxgFIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0Ei4KBWVycm9yGAYgASgLMhouYnJvd3NlcnNjYWxlLnYxLldhaXRFcnJvckgAiAEBQggKBl9lcnJvciLsAQoTV2FpdENvbmRpdGlvblN0YXR1cxINCgVpbmRleBgBIAEoBRINCgVzdGF0ZRgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSEAoIZnJhbWVfaWQYBCABKAkSEgoKaXNfdmlzaWJsZRgFIAEoCBIqCgZib3VuZHMYBiABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdEgAiAEBEjQKCG9jY2x1ZGVyGAcgASgLMh0uYnJvd3NlcnNjYWxlLnYxLk9jY2x1ZGVySW5mb0gBiAEBQgkKB19ib3VuZHNCCwoJX29jY2x1ZGVyImQKCVdhaXRFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSOAoKY29uZGl0aW9ucxgDIAMoCzIkLmJyb3dzZXJzY2FsZS52MS5XYWl0Q29uZGl0aW9uU3RhdHVzIqYBCg1FbGVtZW50UmVzdWx0Eg8KB3N1Y2Nlc3MYASABKAgSEAoIZnJhbWVfaWQYAiABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAMgASgFEhIKCmlzX3Zpc2libGUYBCABKAgSJQoGYm91bmRzGAUgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSDgoGcm9vdF94GAYgASgBEg4KBnJvb3RfeRgHIAEoASKuAwoMT2NjbHVkZXJJbmZvEhcKD2JhY2tlbmRfbm9kZV9pZBgBIAEoBRIQCghmcmFtZV9pZBgCIAEoCRIQCgh0YWdfbmFtZRgDIAEoCRIPCgJpZBgEIAEoCUgAiAEBEhcKCmNsYXNzX25hbWUYBSABKAlIAYgBARIRCgR0ZXh0GAYgASgJSAKIAQESJQoGYm91bmRzGAcgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QSGwoOcG9pbnRlcl9ldmVudHMYCCABKAlIA4gBARIXCgp2aXNpYmlsaXR5GAkgASgJSASIAQESFAoHb3BhY2l0eRgKIAEoAUgFiAEBEhQKB3pfaW5kZXgYCyABKAlIBogBARIlChhoaXR0YWJsZV93aGlsZV9pbnZpc2libGUYDCABKAhIB4gBAUIFCgNfaWRCDQoLX2NsYXNzX25hbWVCBwoFX3RleHRCEQoPX3BvaW50ZXJfZXZlbnRzQg0KC192aXNpYmlsaXR5QgoKCF9vcGFjaXR5QgoKCF96X2luZGV4QhsKGV9oaXR0YWJsZV93aGlsZV9pbnZpc2libGUioAEKCkNsaWNrRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEjQKCG9jY2x1ZGVyGAMgASgLMh0uYnJvd3NlcnNjYWxlLnYxLk9jY2x1ZGVySW5mb0gAiAEBEhwKD2V2YWRlX2F0dGVtcHRlZBgEIAEoCEgBiAEBQgsKCV9vY2NsdWRlckISChBfZXZhZGVfYXR0ZW1wdGVkIt8BCgtDbGlja1Jlc3VsdBIPCgdzdWNjZXNzGAEgASgIEhAKCGZyYW1lX2lkGAIgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgDIAEoBRISCgppc192aXNpYmxlGAQgASgIEiUKBmJvdW5kcxgFIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0Eg4KBnJvb3RfeBgGIAEoARIOCgZyb290X3kYByABKAESLwoFZXJyb3IYCCABKAsyGy5icm93c2Vyc2NhbGUudjEuQ2xpY2tFcnJvckgAiAEBQggKBl9lcnJvciJxCglGaWxsRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEjUKC2NsaWNrX2Vycm9yGAMgASgLMhsuYnJvd3NlcnNjYWxlLnYxLkNsaWNrRXJyb3JIAIgBAUIOCgxfY2xpY2tfZXJyb3IiogEKCkZpbGxSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSDgoGcm9vdF94GAYgASgBEg4KBnJvb3RfeRgHIAEoARIuCgVlcnJvchgIIAEoCzIaLmJyb3dzZXJzY2FsZS52MS5GaWxsRXJyb3JIAIgBAUIICgZfZXJyb3IiwgEKCkRyYWdSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSDwoHc3RhcnRfeBgEIAEoARIPCgdzdGFydF95GAUgASgBEg0KBWVuZF94GAYgASgBEg0KBWVuZF95GAcgASgBEi4KBWVycm9yGAggASgLMhouYnJvd3NlcnNjYWxlLnYxLkRyYWdFcnJvckgAiAEBQggKBl9lcnJvciJxCglEcmFnRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJEjUKC2NsaWNrX2Vycm9yGAMgASgLMhsuYnJvd3NlcnNjYWxlLnYxLkNsaWNrRXJyb3JIAIgBAUIOCgxfY2xpY2tfZXJyb3IirgEKElNlbGVjdE9wdGlvblJlc3VsdBIWCg5zZWxlY3RlZF9pbmRleBgBIAEoBRIWCg5zZWxlY3RlZF92YWx1ZRgCIAEoCRIVCg1zZWxlY3RlZF90ZXh0GAMgASgJEg8KB3N1Y2Nlc3MYBCABKAgSNgoFZXJyb3IYBSABKAsyIi5icm93c2Vyc2NhbGUudjEuU2VsZWN0T3B0aW9uRXJyb3JIAIgBAUIICgZfZXJyb3IiMgoRU2VsZWN0T3B0aW9uRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJIsEBCgxTY3JvbGxSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSEgoKaXNfdmlzaWJsZRgEIAEoCBIlCgZib3VuZHMYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIwCgVlcnJvchgIIAEoCzIcLmJyb3dzZXJzY2FsZS52MS5TY3JvbGxFcnJvckgAiAEBQggKBl9lcnJvciIsCgtTY3JvbGxFcnJvchIMCgRjb2RlGAEgASgJEg8KB21lc3NhZ2UYAiABKAki3QEKCk1vdmVSZXN1bHQSDwoHc3VjY2VzcxgBIAEoCBIQCghmcmFtZV9pZBgCIAEoCRIXCg9iYWNrZW5kX25vZGVfaWQYAyABKAUSEgoKaXNfdmlzaWJsZRgEIAEoCBIlCgZib3VuZHMYBSABKAsyFS5icm93c2Vyc2NhbGUudjEuUmVjdBIOCgZyb290X3gYBiABKAESDgoGcm9vdF95GAcgASgBEi4KBWVycm9yGAggASgLMhouYnJvd3NlcnNjYWxlLnYxLk1vdmVFcnJvckgAiAEBQggKBl9lcnJvciIqCglNb3ZlRXJyb3ISDAoEY29kZRgBIAEoCRIPCgdtZXNzYWdlGAIgASgJIuYBCg9TZXRQcm94eVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhcKCnByb3h5X2hvc3QYAyABKAlIAIgBARIXCgpwcm94eV9wb3J0GAQgASgFSAGIAQESGwoOcHJveHlfdXNlcm5hbWUYBSABKAlIAogBARIbCg5wcm94eV9wYXNzd29yZBgGIAEoCUgDiAEBQg0KC19wcm94eV9ob3N0Qg0KC19wcm94eV9wb3J0QhEKD19wcm94eV91c2VybmFtZUIRCg9fcHJveHlfcGFzc3dvcmQiNgoPR2V0UGFnZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCSI8ChBHZXRQYWdlc1Jlc3BvbnNlEigKBXBhZ2VzGAEgAygLMhkuYnJvd3NlcnNjYWxlLnYxLlBhZ2VJbmZvIpoBCg9OYXZpZ2F0ZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDdXJsGAQgASgJEhUKCHJlZmVycmVyGAUgASgJSACIAQESFAoHdGltZW91dBgGIAEoAUgBiAEBQgsKCV9yZWZlcnJlckIKCghfdGltZW91dCIxChBOYXZpZ2F0ZVJlc3BvbnNlEhAKCGZyYW1lX2lkGAEgASgJEgsKA3VybBgCIAEoCSK2AQoPTG9hZEhUTUxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEgsKA3VybBgEIAEoCRIMCgRodG1sGAUgASgJEigKB2hlYWRlcnMYBiADKAsyFy5icm93c2Vyc2NhbGUudjEuSGVhZGVyEhgKC3N0YXR1c19jb2RlGAcgASgFSACIAQFCDgoMX3N0YXR1c19jb2RlIn8KD0V2YWx1YXRlUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRISCgpleHByZXNzaW9uGAQgASgJEhUKCGZyYW1lX2lkGAUgASgJSACIAQFCCwoJX2ZyYW1lX2lkInYKEEV2YWx1YXRlUmVzcG9uc2USDgoGcmVzdWx0GAEgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgCIAEoBRISCgppc192aXNpYmxlGAMgASgIEiUKBmJvdW5kcxgEIAEoCzIVLmJyb3dzZXJzY2FsZS52MS5SZWN0ImMKClJ1blJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg4KBnNvdXJjZRgDIAEoCRIUCgdwYWdlX2lkGAQgASgJSACIAQFCCgoIX3BhZ2VfaWQiLgoLUnVuUmVzcG9uc2USDwoHc3VjY2VzcxgBIAEoCBIOCgZyZXN1bHQYAiABKAkiwgEKEFdhaXRGb3JBbnlQYXJhbXMSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSMgoKY29uZGl0aW9ucxgEIAMoCzIeLmJyb3dzZXJzY2FsZS52MS5XYWl0Q29uZGl0aW9uEhUKCGZyYW1lX2lkGAUgASgJSACIAQESFAoHdGltZW91dBgGIAEoAUgBiAEBQgsKCV9mcmFtZV9pZEIKCghfdGltZW91dCL1AgoTU2VsZWN0T3B0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEhIKBWluZGV4GAggASgFSASIAQESEgoFdmFsdWUYCSABKAlIBYgBARIRCgR0ZXh0GAogASgJSAaIAQESGAoLZmlyZV9ldmVudHMYCyABKAhIB4gBAUISChBfYmFja2VuZF9ub2RlX2lkQgsKCV9zZWxlY3RvckIQCg5fanNfZXhwcmVzc2lvbkILCglfZnJhbWVfaWRCCAoGX2luZGV4QggKBl92YWx1ZUIHCgVfdGV4dEIOCgxfZmlyZV9ldmVudHMi7wEKD1Njcm9sbFRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZCKZAgoNTW92ZVRvUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEg4KAXgYCCABKAFIBIgBARIOCgF5GAkgASgBSAWIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgQKAl94QgQKAl95IoIDCgxDbGlja1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSHAoPYmFja2VuZF9ub2RlX2lkGAQgASgFSACIAQESFQoIc2VsZWN0b3IYBSABKAlIAYgBARIaCg1qc19leHByZXNzaW9uGAYgASgJSAKIAQESFQoIZnJhbWVfaWQYByABKAlIA4gBARITCgZidXR0b24YCCABKAlIBIgBARIYCgtjbGlja19jb3VudBgJIAEoBUgFiAEBEg4KAXgYCiABKAFIBogBARIOCgF5GAsgASgBSAeIAQESEwoGYWN0aW9uGAwgASgJSAiIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgkKB19idXR0b25CDgoMX2NsaWNrX2NvdW50QgQKAl94QgQKAl95QgkKB19hY3Rpb24igwMKC0RyYWdSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESFQoIb2Zmc2V0X3gYCCABKAFIBIgBARIVCghvZmZzZXRfeRgJIAEoAUgFiAEBEhcKCmFic29sdXRlX3gYCiABKAFIBogBARIXCgphYnNvbHV0ZV95GAsgASgBSAeIAQFCEgoQX2JhY2tlbmRfbm9kZV9pZEILCglfc2VsZWN0b3JCEAoOX2pzX2V4cHJlc3Npb25CCwoJX2ZyYW1lX2lkQgsKCV9vZmZzZXRfeEILCglfb2Zmc2V0X3lCDQoLX2Fic29sdXRlX3hCDQoLX2Fic29sdXRlX3kiowIKC0ZpbGxSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhwKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBUgAiAEBEhUKCHNlbGVjdG9yGAUgASgJSAGIAQESGgoNanNfZXhwcmVzc2lvbhgGIAEoCUgCiAEBEhUKCGZyYW1lX2lkGAcgASgJSAOIAQESDAoEdGV4dBgIIAEoCRIYCgtjbGVhcl9maXJzdBgJIAEoCEgEiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZEIOCgxfY2xlYXJfZmlyc3QiTAoTU2V0QmxvY2tMaXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkiYQoVU2V0U3RhdGljUGF0aHNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIQCghwYXR0ZXJucxgDIAMoCRIRCglibG9iX25hbWUYBCABKAkiiAEKGFdhaXRGb3JBbnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEAoIcGF0dGVybnMYAyADKAkSEwoLYWJvcnRfZmxhZ3MYBCADKAUSFAoHdGltZW91dBgFIAEoAUgAiAEBQgoKCF90aW1lb3V0ImAKGVdhaXRGb3JBbnlSZXF1ZXN0UmVzcG9uc2USDQoFaW5kZXgYASABKAUSNAoHcmVxdWVzdBgCIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiiQEKGVdhaXRGb3JBbnlSZXNwb25zZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhAKCHBhdHRlcm5zGAMgAygJEhMKC2Fib3J0X2ZsYWdzGAQgAygFEhQKB3RpbWVvdXQYBSABKAFIAIgBAUIKCghfdGltZW91dCJjChpXYWl0Rm9yQW55UmVzcG9uc2VSZXNwb25zZRINCgVpbmRleBgBIAEoBRI2CghyZXNwb25zZRgCIAEoCzIkLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlc3BvbnNlIsoBChRNb2RpZnlSZXF1ZXN0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEwoLdXJsX3BhdHRlcm4YAyABKAkSOgoNbW9kaWZpY2F0aW9ucxgEIAMoCzIjLmJyb3dzZXJzY2FsZS52MS5IZWFkZXJNb2RpZmljYXRpb24SEQoEYm9keRgFIAEoCUgAiAEBEhQKB3RpbWVvdXQYBiABKAFIAYgBAUIHCgVfYm9keUIKCghfdGltZW91dCJNChVNb2RpZnlSZXF1ZXN0UmVzcG9uc2USNAoHcmVxdWVzdBgBIAEoCzIjLmJyb3dzZXJzY2FsZS52MS5JbnRlcmNlcHRlZFJlcXVlc3QiOAoRR2V0Q29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIkMKEkdldENvb2tpZXNSZXNwb25zZRItCgdjb29raWVzGAEgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtImcKEVNldENvb2tpZXNSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRItCgdjb29raWVzGAMgAygLMhwuYnJvd3NlcnNjYWxlLnYxLkNvb2tpZVBhcmFtIjoKE0NsZWFyQ29va2llc1JlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJIikKC1N0b3JhZ2VJdGVtEgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCSJRChJTdG9yYWdlT3JpZ2luRW50cnkSDgoGb3JpZ2luGAEgASgJEisKBWl0ZW1zGAIgAygLMhwuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VJdGVtIlgKEUdldFN0b3JhZ2VSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRITCgZvcmlnaW4YAyABKAlIAIgBAUIJCgdfb3JpZ2luIkoKEkdldFN0b3JhZ2VSZXNwb25zZRI0CgdzdG9yYWdlGAEgAygLMiMuYnJvd3NlcnNjYWxlLnYxLlN0b3JhZ2VPcmlnaW5FbnRyeSKYAQoRU2V0U3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEjQKB3N0b3JhZ2UYAyADKAsyIy5icm93c2Vyc2NhbGUudjEuU3RvcmFnZU9yaWdpbkVudHJ5EhgKC2NsZWFyX2ZpcnN0GAQgASgISACIAQFCDgoMX2NsZWFyX2ZpcnN0IloKE0NsZWFyU3RvcmFnZVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEhMKBm9yaWdpbhgDIAEoCUgAiAEBQgkKB19vcmlnaW4ihwEKDUdldERPTVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBARISCgVkZXB0aBgFIAEoBUgBiAEBQgsKCV9mcmFtZV9pZEIICgZfZGVwdGgiHQoOR2V0RE9NUmVzcG9uc2USCwoDZG9tGAEgASgJIr8BChVHZXRPYnNlcnZhdGlvblJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSIwoWbWF4X2VsZW1lbnRzX3Blcl9mcmFtZRgEIAEoBUgAiAEBEhwKD21heF90ZXh0X2xlbmd0aBgFIAEoBUgBiAEBQhkKF19tYXhfZWxlbWVudHNfcGVyX2ZyYW1lQhIKEF9tYXhfdGV4dF9sZW5ndGgiTAoWR2V0T2JzZXJ2YXRpb25SZXNwb25zZRIYChBvYnNlcnZhdGlvbl90ZXh0GAEgASgJEhgKEG9ic2VydmF0aW9uX2pzb24YAiABKAkibQoRR2V0RE9NSGFzaFJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSFQoIZnJhbWVfaWQYBCABKAlIAIgBAUILCglfZnJhbWVfaWQiIgoSR2V0RE9NSGFzaFJlc3BvbnNlEgwKBGhhc2gYASABKAkiZgoYSW5zcGVjdEF0UG9zaXRpb25SZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEgkKAXgYBCABKAESCQoBeRgFIAEoASKpAQoZSW5zcGVjdEF0UG9zaXRpb25SZXNwb25zZRIXCg9iYWNrZW5kX25vZGVfaWQYASABKAUSEAoIZnJhbWVfaWQYAiABKAkSEAoIdGFnX25hbWUYAyABKAkSFAoMdGV4dF9jb250ZW50GAQgASgJEhIKCmlzX3Zpc2libGUYBSABKAgSJQoGYm91bmRzGAYgASgLMhUuYnJvd3NlcnNjYWxlLnYxLlJlY3QiiQEKFEhpZ2hsaWdodE5vZGVSZXF1ZXN0EhIKCnNlc3Npb25faWQYASABKAkSDwoHYXBpX2tleRgCIAEoCRIPCgdwYWdlX2lkGAMgASgJEhcKD2JhY2tlbmRfbm9kZV9pZBgEIAEoBRIVCghmcmFtZV9pZBgFIAEoCUgAiAEBQgsKCV9mcmFtZV9pZCJXChFJbnNlcnRUZXh0UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIMCgR0ZXh0GAQgASgJIroBCg9QcmVzc0tleVJlcXVlc3QSEgoKc2Vzc2lvbl9pZBgBIAEoCRIPCgdhcGlfa2V5GAIgASgJEg8KB3BhZ2VfaWQYAyABKAkSCwoDa2V5GAQgASgJEhEKBGNvZGUYBSABKAlIAIgBARIWCgltb2RpZmllcnMYBiABKAVIAYgBARIVCghsb2NhdGlvbhgHIAEoBUgCiAEBQgcKBV9jb2RlQgwKCl9tb2RpZmllcnNCCwoJX2xvY2F0aW9uIrwBChFSZWxlYXNlS2V5UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRILCgNrZXkYBCABKAkSEQoEY29kZRgFIAEoCUgAiAEBEhYKCW1vZGlmaWVycxgGIAEoBUgBiAEBEhUKCGxvY2F0aW9uGAcgASgFSAKIAQFCBwoFX2NvZGVCDAoKX21vZGlmaWVyc0ILCglfbG9jYXRpb24iSwoTR2V0U2VsZWN0aW9uUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCSIkChRHZXRTZWxlY3Rpb25SZXNwb25zZRIMCgR0ZXh0GAEgASgJIosBChFTY3JlZW5zaG90UmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRITCgZmb3JtYXQYBCABKAlIAIgBARIUCgdxdWFsaXR5GAUgASgFSAGIAQFCCQoHX2Zvcm1hdEIKCghfcXVhbGl0eSJIChJTY3JlZW5zaG90UmVzcG9uc2USEwoLZGF0YV9iYXNlNjQYASABKAkSDQoFd2lkdGgYAiABKAUSDgoGaGVpZ2h0GAMgASgFIpMDChFSZWFkQ2FudmFzUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSDwoHcGFnZV9pZBgDIAEoCRIcCg9iYWNrZW5kX25vZGVfaWQYBCABKAVIAIgBARIVCghzZWxlY3RvchgFIAEoCUgBiAEBEhoKDWpzX2V4cHJlc3Npb24YBiABKAlIAogBARIVCghmcmFtZV9pZBgHIAEoCUgDiAEBEhMKBmZvcm1hdBgIIAEoCUgEiAEBEhQKB3F1YWxpdHkYCSABKAVIBYgBARIPCgJzeBgKIAEoBUgGiAEBEg8KAnN5GAsgASgFSAeIAQESDwoCc3cYDCABKAVICIgBARIPCgJzaBgNIAEoBUgJiAEBQhIKEF9iYWNrZW5kX25vZGVfaWRCCwoJX3NlbGVjdG9yQhAKDl9qc19leHByZXNzaW9uQgsKCV9mcmFtZV9pZEIJCgdfZm9ybWF0QgoKCF9xdWFsaXR5QgUKA19zeEIFCgNfc3lCBQoDX3N3QgUKA19zaCKaAQoSUmVhZENhbnZhc1Jlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSEAoIZnJhbWVfaWQYAiABKAkSFwoPYmFja2VuZF9ub2RlX2lkGAMgASgFEhMKC2RhdGFfYmFzZTY0GAQgASgJEg0KBXdpZHRoGAUgASgFEg4KBmhlaWdodBgGIAEoBRIUCgxvcmlnaW5fY2xlYW4YByABKAgiZAoTU29sdmVDYXB0Y2hhUmVxdWVzdBISCgpzZXNzaW9uX2lkGAEgASgJEg8KB2FwaV9rZXkYAiABKAkSEgoKdGltZW91dF9tcxgDIAEoBRIUCgxyZXRyeV9hbW91bnQYBCABKAUiJgoUU29sdmVDYXB0Y2hhUmVzcG9uc2USDgoGcmVzdWx0GAEgASgJMo8XCgdCcm93c2VyEkQKCFNldFByb3h5EiAuYnJvd3NlcnNjYWxlLnYxLlNldFByb3h5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJPCghHZXRQYWdlcxIgLmJyb3dzZXJzY2FsZS52MS5HZXRQYWdlc1JlcXVlc3QaIS5icm93c2Vyc2NhbGUudjEuR2V0UGFnZXNSZXNwb25zZRJPCghOYXZpZ2F0ZRIgLmJyb3dzZXJzY2FsZS52MS5OYXZpZ2F0ZVJlcXVlc3QaIS5icm93c2Vyc2NhbGUudjEuTmF2aWdhdGVSZXNwb25zZRJECghMb2FkSFRNTBIgLmJyb3dzZXJzY2FsZS52MS5Mb2FkSFRNTFJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTwoIRXZhbHVhdGUSIC5icm93c2Vyc2NhbGUudjEuRXZhbHVhdGVSZXF1ZXN0GiEuYnJvd3NlcnNjYWxlLnYxLkV2YWx1YXRlUmVzcG9uc2USQAoDUnVuEhsuYnJvd3NlcnNjYWxlLnYxLlJ1blJlcXVlc3QaHC5icm93c2Vyc2NhbGUudjEuUnVuUmVzcG9uc2USTAoKV2FpdEZvckFueRIhLmJyb3dzZXJzY2FsZS52MS5XYWl0Rm9yQW55UGFyYW1zGhsuYnJvd3NlcnNjYWxlLnYxLldhaXRSZXN1bHQSWQoMU2VsZWN0T3B0aW9uEiQuYnJvd3NlcnNjYWxlLnYxLlNlbGVjdE9wdGlvblJlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuU2VsZWN0T3B0aW9uUmVzdWx0EksKCFNjcm9sbFRvEiAuYnJvd3NlcnNjYWxlLnYxLlNjcm9sbFRvUmVxdWVzdBodLmJyb3dzZXJzY2FsZS52MS5TY3JvbGxSZXN1bHQSRQoGTW92ZVRvEh4uYnJvd3NlcnNjYWxlLnYxLk1vdmVUb1JlcXVlc3QaGy5icm93c2Vyc2NhbGUudjEuTW92ZVJlc3VsdBJECgVDbGljaxIdLmJyb3dzZXJzY2FsZS52MS5DbGlja1JlcXVlc3QaHC5icm93c2Vyc2NhbGUudjEuQ2xpY2tSZXN1bHQSQQoERHJhZxIcLmJyb3dzZXJzY2FsZS52MS5EcmFnUmVxdWVzdBobLmJyb3dzZXJzY2FsZS52MS5EcmFnUmVzdWx0EkEKBEZpbGwSHC5icm93c2Vyc2NhbGUudjEuRmlsbFJlcXVlc3QaGy5icm93c2Vyc2NhbGUudjEuRmlsbFJlc3VsdBJMCgxTZXRCbG9ja0xpc3QSJC5icm93c2Vyc2NhbGUudjEuU2V0QmxvY2tMaXN0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJQCg5TZXRTdGF0aWNQYXRocxImLmJyb3dzZXJzY2FsZS52MS5TZXRTdGF0aWNQYXRoc1JlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSagoRV2FpdEZvckFueVJlcXVlc3QSKS5icm93c2Vyc2NhbGUudjEuV2FpdEZvckFueVJlcXVlc3RSZXF1ZXN0GiouYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXF1ZXN0UmVzcG9uc2USbQoSV2FpdEZvckFueVJlc3BvbnNlEiouYnJvd3NlcnNjYWxlLnYxLldhaXRGb3JBbnlSZXNwb25zZVJlcXVlc3QaKy5icm93c2Vyc2NhbGUudjEuV2FpdEZvckFueVJlc3BvbnNlUmVzcG9uc2USXgoNTW9kaWZ5UmVxdWVzdBIlLmJyb3dzZXJzY2FsZS52MS5Nb2RpZnlSZXF1ZXN0UmVxdWVzdBomLmJyb3dzZXJzY2FsZS52MS5Nb2RpZnlSZXF1ZXN0UmVzcG9uc2USVQoKR2V0Q29va2llcxIiLmJyb3dzZXJzY2FsZS52MS5HZXRDb29raWVzUmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5HZXRDb29raWVzUmVzcG9uc2USSAoKU2V0Q29va2llcxIiLmJyb3dzZXJzY2FsZS52MS5TZXRDb29raWVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJMCgxDbGVhckNvb2tpZXMSJC5icm93c2Vyc2NhbGUudjEuQ2xlYXJDb29raWVzUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJVCgpHZXRTdG9yYWdlEiIuYnJvd3NlcnNjYWxlLnYxLkdldFN0b3JhZ2VSZXF1ZXN0GiMuYnJvd3NlcnNjYWxlLnYxLkdldFN0b3JhZ2VSZXNwb25zZRJICgpTZXRTdG9yYWdlEiIuYnJvd3NlcnNjYWxlLnYxLlNldFN0b3JhZ2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkwKDENsZWFyU3RvcmFnZRIkLmJyb3dzZXJzY2FsZS52MS5DbGVhclN0b3JhZ2VSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkkKBkdldERPTRIeLmJyb3dzZXJzY2FsZS52MS5HZXRET01SZXF1ZXN0Gh8uYnJvd3NlcnNjYWxlLnYxLkdldERPTVJlc3BvbnNlElUKCkdldERPTUhhc2gSIi5icm93c2Vyc2NhbGUudjEuR2V0RE9NSGFzaFJlcXVlc3QaIy5icm93c2Vyc2NhbGUudjEuR2V0RE9NSGFzaFJlc3BvbnNlEmEKDkdldE9ic2VydmF0aW9uEiYuYnJvd3NlcnNjYWxlLnYxLkdldE9ic2VydmF0aW9uUmVxdWVzdBonLmJyb3dzZXJzY2FsZS52MS5HZXRPYnNlcnZhdGlvblJlc3BvbnNlEmoKEUluc3BlY3RBdFBvc2l0aW9uEikuYnJvd3NlcnNjYWxlLnYxLkluc3BlY3RBdFBvc2l0aW9uUmVxdWVzdBoqLmJyb3dzZXJzY2FsZS52MS5JbnNwZWN0QXRQb3NpdGlvblJlc3BvbnNlEk4KDUhpZ2hsaWdodE5vZGUSJS5icm93c2Vyc2NhbGUudjEuSGlnaGxpZ2h0Tm9kZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSVQoKU2NyZWVuc2hvdBIiLmJyb3dzZXJzY2FsZS52MS5TY3JlZW5zaG90UmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5TY3JlZW5zaG90UmVzcG9uc2USVQoKUmVhZENhbnZhcxIiLmJyb3dzZXJzY2FsZS52MS5SZWFkQ2FudmFzUmVxdWVzdBojLmJyb3dzZXJzY2FsZS52MS5SZWFkQ2FudmFzUmVzcG9uc2USSAoKSW5zZXJ0VGV4dBIiLmJyb3dzZXJzY2FsZS52MS5JbnNlcnRUZXh0UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJECghQcmVzc0tleRIgLmJyb3dzZXJzY2FsZS52MS5QcmVzc0tleVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoKUmVsZWFzZUtleRIiLmJyb3dzZXJzY2FsZS52MS5SZWxlYXNlS2V5UmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJbCgxHZXRTZWxlY3Rpb24SJC5icm93c2Vyc2NhbGUudjEuR2V0U2VsZWN0aW9uUmVxdWVzdBolLmJyb3dzZXJzY2FsZS52MS5HZXRTZWxlY3Rpb25SZXNwb25zZRJbCgxTb2x2ZUNhcHRjaGESJC5icm93c2Vyc2NhbGUudjEuU29sdmVDYXB0Y2hhUmVxdWVzdBolLmJyb3dzZXJzY2FsZS52MS5Tb2x2ZUNhcHRjaGFSZXNwb25zZUIzWjFnaXRodWIuY29tL2Jyb3dzZXJzY2FsZS9icm93c2Vyc2NhbGUtZ28vZ2VuZXJhdGVkYgZwcm90bzM", [file_google_protobuf_empty]);
|
|
3803
3803
|
var HeaderSchema = /* @__PURE__ */ messageDesc(file_wrc, 3);
|
|
3804
3804
|
var HeaderModificationSchema = /* @__PURE__ */ messageDesc(file_wrc, 6);
|
|
3805
3805
|
var CookiePartitionKeySchema = /* @__PURE__ */ messageDesc(file_wrc, 7);
|
|
3806
3806
|
var CookieParamSchema = /* @__PURE__ */ messageDesc(file_wrc, 8);
|
|
3807
3807
|
var WaitConditionSchema = /* @__PURE__ */ messageDesc(file_wrc, 9);
|
|
3808
|
-
var SetProxyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3809
|
-
var GetPagesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3810
|
-
var NavigateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3811
|
-
var LoadHTMLRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3812
|
-
var EvaluateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3813
|
-
var WaitForAnyParamsSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3814
|
-
var SelectOptionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3815
|
-
var ScrollToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3816
|
-
var MoveToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3817
|
-
var ClickRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3818
|
-
var DragRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3819
|
-
var FillRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3820
|
-
var SetBlockListRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3821
|
-
var SetStaticPathsRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3822
|
-
var WaitForAnyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3823
|
-
var WaitForAnyResponseRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3824
|
-
var ModifyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3825
|
-
var GetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3826
|
-
var SetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3827
|
-
var ClearCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3828
|
-
var StorageItemSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3829
|
-
var StorageOriginEntrySchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3830
|
-
var GetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3831
|
-
var SetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3832
|
-
var ClearStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3833
|
-
var GetDOMRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3834
|
-
var GetObservationRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3835
|
-
var GetDOMHashRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3836
|
-
var InspectAtPositionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3837
|
-
var HighlightNodeRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3838
|
-
var InsertTextRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3839
|
-
var PressKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3840
|
-
var ReleaseKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3841
|
-
var GetSelectionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3842
|
-
var ScreenshotRequestSchema = /* @__PURE__ */ messageDesc(file_wrc,
|
|
3843
|
-
var
|
|
3808
|
+
var SetProxyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 27);
|
|
3809
|
+
var GetPagesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 28);
|
|
3810
|
+
var NavigateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 30);
|
|
3811
|
+
var LoadHTMLRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 32);
|
|
3812
|
+
var EvaluateRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 33);
|
|
3813
|
+
var WaitForAnyParamsSchema = /* @__PURE__ */ messageDesc(file_wrc, 37);
|
|
3814
|
+
var SelectOptionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 38);
|
|
3815
|
+
var ScrollToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 39);
|
|
3816
|
+
var MoveToRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 40);
|
|
3817
|
+
var ClickRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 41);
|
|
3818
|
+
var DragRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 42);
|
|
3819
|
+
var FillRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 43);
|
|
3820
|
+
var SetBlockListRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 44);
|
|
3821
|
+
var SetStaticPathsRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 45);
|
|
3822
|
+
var WaitForAnyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 46);
|
|
3823
|
+
var WaitForAnyResponseRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 48);
|
|
3824
|
+
var ModifyRequestRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 50);
|
|
3825
|
+
var GetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 52);
|
|
3826
|
+
var SetCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 54);
|
|
3827
|
+
var ClearCookiesRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 55);
|
|
3828
|
+
var StorageItemSchema = /* @__PURE__ */ messageDesc(file_wrc, 56);
|
|
3829
|
+
var StorageOriginEntrySchema = /* @__PURE__ */ messageDesc(file_wrc, 57);
|
|
3830
|
+
var GetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 58);
|
|
3831
|
+
var SetStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 60);
|
|
3832
|
+
var ClearStorageRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 61);
|
|
3833
|
+
var GetDOMRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 62);
|
|
3834
|
+
var GetObservationRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 64);
|
|
3835
|
+
var GetDOMHashRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 66);
|
|
3836
|
+
var InspectAtPositionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 68);
|
|
3837
|
+
var HighlightNodeRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 70);
|
|
3838
|
+
var InsertTextRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 71);
|
|
3839
|
+
var PressKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 72);
|
|
3840
|
+
var ReleaseKeyRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 73);
|
|
3841
|
+
var GetSelectionRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 74);
|
|
3842
|
+
var ScreenshotRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 76);
|
|
3843
|
+
var ReadCanvasRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 78);
|
|
3844
|
+
var SolveCaptchaRequestSchema = /* @__PURE__ */ messageDesc(file_wrc, 80);
|
|
3844
3845
|
var Browser = /* @__PURE__ */ serviceDesc(file_wrc, 0);
|
|
3845
3846
|
|
|
3846
3847
|
// src/defaults.ts
|
|
@@ -3856,6 +3857,71 @@ var BrowserScaleError = class extends Error {
|
|
|
3856
3857
|
this.name = "BrowserScaleError";
|
|
3857
3858
|
}
|
|
3858
3859
|
};
|
|
3860
|
+
var ClickError = class extends BrowserScaleError {
|
|
3861
|
+
constructor(init) {
|
|
3862
|
+
super(formatMessage("click", init.code, init.message));
|
|
3863
|
+
this.name = "ClickError";
|
|
3864
|
+
this.code = init.code;
|
|
3865
|
+
this.occluder = init.occluder;
|
|
3866
|
+
this.evadeAttempted = init.evadeAttempted ?? false;
|
|
3867
|
+
this.result = init.result;
|
|
3868
|
+
}
|
|
3869
|
+
};
|
|
3870
|
+
var FillError = class extends BrowserScaleError {
|
|
3871
|
+
constructor(init) {
|
|
3872
|
+
super(formatMessage("fill", init.code, init.message));
|
|
3873
|
+
this.name = "FillError";
|
|
3874
|
+
this.code = init.code;
|
|
3875
|
+
this.clickError = init.clickError;
|
|
3876
|
+
this.result = init.result;
|
|
3877
|
+
}
|
|
3878
|
+
};
|
|
3879
|
+
var DragError = class extends BrowserScaleError {
|
|
3880
|
+
constructor(init) {
|
|
3881
|
+
super(formatMessage("drag", init.code, init.message));
|
|
3882
|
+
this.name = "DragError";
|
|
3883
|
+
this.code = init.code;
|
|
3884
|
+
this.clickError = init.clickError;
|
|
3885
|
+
this.result = init.result;
|
|
3886
|
+
}
|
|
3887
|
+
};
|
|
3888
|
+
var ScrollError = class extends BrowserScaleError {
|
|
3889
|
+
constructor(init) {
|
|
3890
|
+
super(formatMessage("scrollTo", init.code, init.message));
|
|
3891
|
+
this.name = "ScrollError";
|
|
3892
|
+
this.code = init.code;
|
|
3893
|
+
this.result = init.result;
|
|
3894
|
+
}
|
|
3895
|
+
};
|
|
3896
|
+
var MoveError = class extends BrowserScaleError {
|
|
3897
|
+
constructor(init) {
|
|
3898
|
+
super(formatMessage("moveTo", init.code, init.message));
|
|
3899
|
+
this.name = "MoveError";
|
|
3900
|
+
this.code = init.code;
|
|
3901
|
+
this.result = init.result;
|
|
3902
|
+
}
|
|
3903
|
+
};
|
|
3904
|
+
var SelectOptionError = class extends BrowserScaleError {
|
|
3905
|
+
constructor(init) {
|
|
3906
|
+
super(formatMessage("selectOption", init.code, init.message));
|
|
3907
|
+
this.name = "SelectOptionError";
|
|
3908
|
+
this.code = init.code;
|
|
3909
|
+
this.result = init.result;
|
|
3910
|
+
}
|
|
3911
|
+
};
|
|
3912
|
+
var WaitError = class extends BrowserScaleError {
|
|
3913
|
+
constructor(init) {
|
|
3914
|
+
super(formatMessage("wait", init.code, init.message));
|
|
3915
|
+
this.name = "WaitError";
|
|
3916
|
+
this.code = init.code;
|
|
3917
|
+
this.conditions = init.conditions;
|
|
3918
|
+
this.result = init.result;
|
|
3919
|
+
}
|
|
3920
|
+
};
|
|
3921
|
+
function formatMessage(action, code, message) {
|
|
3922
|
+
const base = `${action} failed: ${code}`;
|
|
3923
|
+
return message ? `${base}: ${message}` : base;
|
|
3924
|
+
}
|
|
3859
3925
|
|
|
3860
3926
|
// src/locator.ts
|
|
3861
3927
|
var AllFrames = "ALL_FRAMES";
|
|
@@ -4026,19 +4092,84 @@ function rectFromProto(r) {
|
|
|
4026
4092
|
if (!r) return { x: 0, y: 0, width: 0, height: 0 };
|
|
4027
4093
|
return { x: r.x, y: r.y, width: r.width, height: r.height };
|
|
4028
4094
|
}
|
|
4029
|
-
function
|
|
4095
|
+
function elementResult(r, isVisible, bounds, rootX, rootY) {
|
|
4030
4096
|
return {
|
|
4031
4097
|
success: r.success,
|
|
4032
4098
|
frameId: r.frameId,
|
|
4033
4099
|
backendNodeId: r.backendNodeId,
|
|
4034
|
-
isVisible
|
|
4035
|
-
bounds
|
|
4036
|
-
rootX
|
|
4037
|
-
rootY
|
|
4100
|
+
isVisible,
|
|
4101
|
+
bounds,
|
|
4102
|
+
rootX,
|
|
4103
|
+
rootY
|
|
4038
4104
|
};
|
|
4039
4105
|
}
|
|
4040
|
-
function
|
|
4106
|
+
function occluderFromProto(o) {
|
|
4107
|
+
if (!o) return void 0;
|
|
4041
4108
|
return {
|
|
4109
|
+
backendNodeId: o.backendNodeId,
|
|
4110
|
+
frameId: o.frameId,
|
|
4111
|
+
tagName: o.tagName,
|
|
4112
|
+
id: o.id ?? "",
|
|
4113
|
+
className: o.className ?? "",
|
|
4114
|
+
text: o.text ?? "",
|
|
4115
|
+
bounds: rectFromProto(o.bounds),
|
|
4116
|
+
pointerEvents: o.pointerEvents ?? "",
|
|
4117
|
+
visibility: o.visibility ?? "",
|
|
4118
|
+
opacity: o.opacity ?? 0,
|
|
4119
|
+
zIndex: o.zIndex ?? "",
|
|
4120
|
+
hittableWhileInvisible: o.hittableWhileInvisible ?? false
|
|
4121
|
+
};
|
|
4122
|
+
}
|
|
4123
|
+
function clickDetailFromProto(e) {
|
|
4124
|
+
if (!e) return void 0;
|
|
4125
|
+
return new ClickError({
|
|
4126
|
+
code: e.code,
|
|
4127
|
+
message: e.message,
|
|
4128
|
+
occluder: occluderFromProto(e.occluder),
|
|
4129
|
+
evadeAttempted: e.evadeAttempted ?? false
|
|
4130
|
+
});
|
|
4131
|
+
}
|
|
4132
|
+
function unwrapClick(r) {
|
|
4133
|
+
const res = elementResult(r, r.isVisible, rectFromProto(r.bounds), r.rootX, r.rootY);
|
|
4134
|
+
if (!r.success && r.error) {
|
|
4135
|
+
throw new ClickError({
|
|
4136
|
+
code: r.error.code,
|
|
4137
|
+
message: r.error.message,
|
|
4138
|
+
occluder: occluderFromProto(r.error.occluder),
|
|
4139
|
+
evadeAttempted: r.error.evadeAttempted ?? false,
|
|
4140
|
+
result: res
|
|
4141
|
+
});
|
|
4142
|
+
}
|
|
4143
|
+
return res;
|
|
4144
|
+
}
|
|
4145
|
+
function unwrapFill(r) {
|
|
4146
|
+
const res = elementResult(r, false, rectFromProto(void 0), r.rootX, r.rootY);
|
|
4147
|
+
if (!r.success && r.error) {
|
|
4148
|
+
throw new FillError({
|
|
4149
|
+
code: r.error.code,
|
|
4150
|
+
message: r.error.message,
|
|
4151
|
+
clickError: clickDetailFromProto(r.error.clickError),
|
|
4152
|
+
result: res
|
|
4153
|
+
});
|
|
4154
|
+
}
|
|
4155
|
+
return res;
|
|
4156
|
+
}
|
|
4157
|
+
function unwrapMove(r) {
|
|
4158
|
+
const res = elementResult(r, r.isVisible, rectFromProto(r.bounds), r.rootX, r.rootY);
|
|
4159
|
+
if (!r.success && r.error) {
|
|
4160
|
+
throw new MoveError({ code: r.error.code, message: r.error.message, result: res });
|
|
4161
|
+
}
|
|
4162
|
+
return res;
|
|
4163
|
+
}
|
|
4164
|
+
function unwrapScroll(r) {
|
|
4165
|
+
const res = elementResult(r, r.isVisible, rectFromProto(r.bounds), 0, 0);
|
|
4166
|
+
if (!r.success && r.error) {
|
|
4167
|
+
throw new ScrollError({ code: r.error.code, message: r.error.message, result: res });
|
|
4168
|
+
}
|
|
4169
|
+
return res;
|
|
4170
|
+
}
|
|
4171
|
+
function unwrapDrag(r) {
|
|
4172
|
+
const res = {
|
|
4042
4173
|
success: r.success,
|
|
4043
4174
|
frameId: r.frameId,
|
|
4044
4175
|
backendNodeId: r.backendNodeId,
|
|
@@ -4047,15 +4178,55 @@ function dragResultFromProto(r) {
|
|
|
4047
4178
|
endX: r.endX,
|
|
4048
4179
|
endY: r.endY
|
|
4049
4180
|
};
|
|
4181
|
+
if (!r.success && r.error) {
|
|
4182
|
+
throw new DragError({
|
|
4183
|
+
code: r.error.code,
|
|
4184
|
+
message: r.error.message,
|
|
4185
|
+
clickError: clickDetailFromProto(r.error.clickError),
|
|
4186
|
+
result: res
|
|
4187
|
+
});
|
|
4188
|
+
}
|
|
4189
|
+
return res;
|
|
4050
4190
|
}
|
|
4051
|
-
function
|
|
4191
|
+
function unwrapSelect(r) {
|
|
4192
|
+
const res = {
|
|
4193
|
+
selectedIndex: r.selectedIndex,
|
|
4194
|
+
selectedValue: r.selectedValue,
|
|
4195
|
+
selectedText: r.selectedText
|
|
4196
|
+
};
|
|
4197
|
+
if (!r.success && r.error) {
|
|
4198
|
+
throw new SelectOptionError({ code: r.error.code, message: r.error.message, result: res });
|
|
4199
|
+
}
|
|
4200
|
+
return res;
|
|
4201
|
+
}
|
|
4202
|
+
function waitConditionStatusFromProto(c) {
|
|
4052
4203
|
return {
|
|
4204
|
+
index: c.index,
|
|
4205
|
+
state: c.state,
|
|
4206
|
+
backendNodeId: c.backendNodeId,
|
|
4207
|
+
frameId: c.frameId,
|
|
4208
|
+
isVisible: c.isVisible,
|
|
4209
|
+
bounds: c.bounds ? rectFromProto(c.bounds) : void 0,
|
|
4210
|
+
occluder: occluderFromProto(c.occluder)
|
|
4211
|
+
};
|
|
4212
|
+
}
|
|
4213
|
+
function unwrapWait(r) {
|
|
4214
|
+
const res = {
|
|
4053
4215
|
index: r.index,
|
|
4054
4216
|
frameId: r.frameId,
|
|
4055
4217
|
backendNodeId: r.backendNodeId,
|
|
4056
4218
|
isVisible: r.isVisible,
|
|
4057
4219
|
bounds: rectFromProto(r.bounds)
|
|
4058
4220
|
};
|
|
4221
|
+
if (r.error) {
|
|
4222
|
+
throw new WaitError({
|
|
4223
|
+
code: r.error.code,
|
|
4224
|
+
message: r.error.message,
|
|
4225
|
+
conditions: r.error.conditions.map(waitConditionStatusFromProto),
|
|
4226
|
+
result: res
|
|
4227
|
+
});
|
|
4228
|
+
}
|
|
4229
|
+
return res;
|
|
4059
4230
|
}
|
|
4060
4231
|
function frameInfoFromProto(f) {
|
|
4061
4232
|
return {
|
|
@@ -4473,7 +4644,10 @@ var CloudBrowser = class {
|
|
|
4473
4644
|
*
|
|
4474
4645
|
* @returns WaitResult for the first matching condition
|
|
4475
4646
|
*
|
|
4476
|
-
* @throws
|
|
4647
|
+
* @throws {@link WaitError} - no condition matched before the deadline;
|
|
4648
|
+
* `.conditions` holds the per-condition breakdown of why each never matched
|
|
4649
|
+
* @throws {@link BrowserScaleError} - a condition was invalid, or a
|
|
4650
|
+
* server/transport error occurred
|
|
4477
4651
|
*
|
|
4478
4652
|
* @example
|
|
4479
4653
|
* const r = await browser.waitAny(
|
|
@@ -4513,8 +4687,7 @@ var CloudBrowser = class {
|
|
|
4513
4687
|
timeout: opts?.timeoutMs ?? DefaultWaitTimeoutMs
|
|
4514
4688
|
});
|
|
4515
4689
|
if (frameId) req.frameId = frameId;
|
|
4516
|
-
|
|
4517
|
-
return waitResultFromProto(resp);
|
|
4690
|
+
return unwrapWait(await this.client.waitForAny(req));
|
|
4518
4691
|
}
|
|
4519
4692
|
// ──────────────────────────────────────────────────────────────────
|
|
4520
4693
|
// Element actions
|
|
@@ -4537,15 +4710,18 @@ var CloudBrowser = class {
|
|
|
4537
4710
|
* post-scroll isVisible, element bounds, and the root-viewport
|
|
4538
4711
|
* (rootX, rootY) where the click landed
|
|
4539
4712
|
*
|
|
4540
|
-
* @throws
|
|
4541
|
-
*
|
|
4542
|
-
*
|
|
4543
|
-
* @throws
|
|
4544
|
-
*
|
|
4545
|
-
* @throws PAGE_NOT_ALIVE - the page has been closed
|
|
4713
|
+
* @throws {@link ClickError} - the target was found but the click could not
|
|
4714
|
+
* land because another element covered it; `.code`, `.occluder` and
|
|
4715
|
+
* `.result` describe the blocker and the resolved coordinates
|
|
4716
|
+
* @throws {@link BrowserScaleError} - invalid locator, or a server/transport
|
|
4717
|
+
* error (element not found, frame not found, timeout, page closed)
|
|
4546
4718
|
*
|
|
4547
4719
|
* @example
|
|
4548
|
-
*
|
|
4720
|
+
* try {
|
|
4721
|
+
* await browser.click(css("button.submit"));
|
|
4722
|
+
* } catch (e) {
|
|
4723
|
+
* if (e instanceof ClickError) console.log(e.code, e.occluder?.tagName);
|
|
4724
|
+
* }
|
|
4549
4725
|
*
|
|
4550
4726
|
* @example
|
|
4551
4727
|
* // Right double-click on a context menu trigger.
|
|
@@ -4561,8 +4737,7 @@ var CloudBrowser = class {
|
|
|
4561
4737
|
if (opts?.button) req.button = opts.button;
|
|
4562
4738
|
if (opts?.clickCount) req.clickCount = opts.clickCount;
|
|
4563
4739
|
if (opts?.action) req.action = opts.action;
|
|
4564
|
-
|
|
4565
|
-
return elementResultFromProto(resp);
|
|
4740
|
+
return unwrapClick(await this.client.click(req));
|
|
4566
4741
|
}
|
|
4567
4742
|
/**
|
|
4568
4743
|
* Clicks the target and types text into it, appending to any existing
|
|
@@ -4583,12 +4758,10 @@ var CloudBrowser = class {
|
|
|
4583
4758
|
* @returns ElementResult with success, resolved frameId, backendNodeId
|
|
4584
4759
|
* and the root-viewport (rootX, rootY) where the element was clicked
|
|
4585
4760
|
*
|
|
4586
|
-
* @throws
|
|
4587
|
-
*
|
|
4588
|
-
* @throws
|
|
4589
|
-
*
|
|
4590
|
-
* @throws TIMEOUT - the operation exceeded the server-side timeout
|
|
4591
|
-
* @throws PAGE_NOT_ALIVE - the page has been closed
|
|
4761
|
+
* @throws {@link FillError} - the field could not be focused/typed; `.code`
|
|
4762
|
+
* and `.clickError` (the underlying click-core failure) describe why
|
|
4763
|
+
* @throws {@link BrowserScaleError} - invalid locator, or a server/transport
|
|
4764
|
+
* error (element not found, frame not found, timeout, page closed)
|
|
4592
4765
|
*
|
|
4593
4766
|
* @example
|
|
4594
4767
|
* await browser.fill(css("input[name=email]"), "user@example.com");
|
|
@@ -4606,8 +4779,7 @@ var CloudBrowser = class {
|
|
|
4606
4779
|
...elementFields(target, opts?.inFrame)
|
|
4607
4780
|
});
|
|
4608
4781
|
if (opts?.clearFirst) req.clearFirst = true;
|
|
4609
|
-
|
|
4610
|
-
return elementResultFromProto(resp);
|
|
4782
|
+
return unwrapFill(await this.client.fill(req));
|
|
4611
4783
|
}
|
|
4612
4784
|
/**
|
|
4613
4785
|
* Moves the mouse cursor over the given target.
|
|
@@ -4622,7 +4794,9 @@ var CloudBrowser = class {
|
|
|
4622
4794
|
* post-scroll isVisible, element bounds and the root-viewport
|
|
4623
4795
|
* (rootX, rootY) where the cursor ended up
|
|
4624
4796
|
*
|
|
4625
|
-
* @throws
|
|
4797
|
+
* @throws {@link MoveError} - the target could not be located (`.code` is
|
|
4798
|
+
* `"not_found"`); `.result` carries the resolved payload
|
|
4799
|
+
* @throws {@link BrowserScaleError} - invalid locator or a server/transport error
|
|
4626
4800
|
*
|
|
4627
4801
|
* @example
|
|
4628
4802
|
* await browser.moveTo(css("nav .menu"));
|
|
@@ -4634,8 +4808,7 @@ var CloudBrowser = class {
|
|
|
4634
4808
|
apiKey: this.apiKey,
|
|
4635
4809
|
...elementFields(target)
|
|
4636
4810
|
});
|
|
4637
|
-
|
|
4638
|
-
return elementResultFromProto(resp);
|
|
4811
|
+
return unwrapMove(await this.client.moveTo(req));
|
|
4639
4812
|
}
|
|
4640
4813
|
/**
|
|
4641
4814
|
* Scrolls the given element into view.
|
|
@@ -4651,7 +4824,9 @@ var CloudBrowser = class {
|
|
|
4651
4824
|
* @returns ElementResult with the resolved frameId, backendNodeId,
|
|
4652
4825
|
* post-scroll isVisible and the element's bounds after the scroll
|
|
4653
4826
|
*
|
|
4654
|
-
* @throws
|
|
4827
|
+
* @throws {@link ScrollError} - the target could not be located/scrolled
|
|
4828
|
+
* (`.code` is `"not_found"`); `.result` carries the resolved payload
|
|
4829
|
+
* @throws {@link BrowserScaleError} - invalid locator or a server/transport error
|
|
4655
4830
|
*
|
|
4656
4831
|
* @example
|
|
4657
4832
|
* await browser.scrollTo(css("#footer"));
|
|
@@ -4663,8 +4838,7 @@ var CloudBrowser = class {
|
|
|
4663
4838
|
apiKey: this.apiKey,
|
|
4664
4839
|
...elementFields(target)
|
|
4665
4840
|
});
|
|
4666
|
-
|
|
4667
|
-
return elementResultFromProto(resp);
|
|
4841
|
+
return unwrapScroll(await this.client.scrollTo(req));
|
|
4668
4842
|
}
|
|
4669
4843
|
/**
|
|
4670
4844
|
* Picks up the target and drops it at an offset relative to the pickup
|
|
@@ -4682,7 +4856,9 @@ var CloudBrowser = class {
|
|
|
4682
4856
|
* @returns DragResult with the resolved frameId, backendNodeId and the
|
|
4683
4857
|
* final cursor position (rootX, rootY) where the drop happened
|
|
4684
4858
|
*
|
|
4685
|
-
* @throws
|
|
4859
|
+
* @throws {@link DragError} - the source could not be acquired/pressed;
|
|
4860
|
+
* `.code` and `.clickError` describe the underlying click-core failure
|
|
4861
|
+
* @throws {@link BrowserScaleError} - invalid locator or a server/transport error
|
|
4686
4862
|
*
|
|
4687
4863
|
* @example
|
|
4688
4864
|
* await browser.dragBy(css(".slider .handle"), 120, 0);
|
|
@@ -4703,7 +4879,9 @@ var CloudBrowser = class {
|
|
|
4703
4879
|
* @returns DragResult with the resolved frameId, backendNodeId and the
|
|
4704
4880
|
* final cursor position (rootX, rootY) where the drop happened
|
|
4705
4881
|
*
|
|
4706
|
-
* @throws
|
|
4882
|
+
* @throws {@link DragError} - the source could not be acquired/pressed;
|
|
4883
|
+
* `.code` and `.clickError` describe the underlying click-core failure
|
|
4884
|
+
* @throws {@link BrowserScaleError} - invalid locator or a server/transport error
|
|
4707
4885
|
*
|
|
4708
4886
|
* @example
|
|
4709
4887
|
* await browser.dragTo(css(".card"), 800, 400);
|
|
@@ -4722,8 +4900,7 @@ var CloudBrowser = class {
|
|
|
4722
4900
|
if (spec.offsetY !== void 0) req.offsetY = spec.offsetY;
|
|
4723
4901
|
if (spec.absoluteX !== void 0) req.absoluteX = spec.absoluteX;
|
|
4724
4902
|
if (spec.absoluteY !== void 0) req.absoluteY = spec.absoluteY;
|
|
4725
|
-
|
|
4726
|
-
return dragResultFromProto(resp);
|
|
4903
|
+
return unwrapDrag(await this.client.drag(req));
|
|
4727
4904
|
}
|
|
4728
4905
|
/**
|
|
4729
4906
|
* Picks the `<option>` at the zero-based index inside the targeted
|
|
@@ -4743,13 +4920,10 @@ var CloudBrowser = class {
|
|
|
4743
4920
|
* @returns SelectOptionResult with the resolved selectedIndex,
|
|
4744
4921
|
* selectedValue and selectedText after the change
|
|
4745
4922
|
*
|
|
4746
|
-
* @throws
|
|
4747
|
-
*
|
|
4748
|
-
* @throws
|
|
4749
|
-
*
|
|
4750
|
-
* (out of range, or element is not a `<select>`)
|
|
4751
|
-
* @throws TIMEOUT - the operation exceeded the server-side timeout
|
|
4752
|
-
* @throws PAGE_NOT_ALIVE - the page has been closed
|
|
4923
|
+
* @throws {@link SelectOptionError} - the option could not be selected;
|
|
4924
|
+
* `.code` is `"not_found"` (no `<select>`) or `"option_not_found"`
|
|
4925
|
+
* @throws {@link BrowserScaleError} - invalid locator, or a server/transport
|
|
4926
|
+
* error (frame not found, timeout, page closed)
|
|
4753
4927
|
*
|
|
4754
4928
|
* @example
|
|
4755
4929
|
* await browser.selectByIndex(css("select#country"), 2);
|
|
@@ -4802,12 +4976,7 @@ var CloudBrowser = class {
|
|
|
4802
4976
|
});
|
|
4803
4977
|
withKey(req);
|
|
4804
4978
|
if (opts?.fireEvents === false) req.fireEvents = false;
|
|
4805
|
-
|
|
4806
|
-
return {
|
|
4807
|
-
selectedIndex: resp.selectedIndex,
|
|
4808
|
-
selectedValue: resp.selectedValue,
|
|
4809
|
-
selectedText: resp.selectedText
|
|
4810
|
-
};
|
|
4979
|
+
return unwrapSelect(await this.client.selectOption(req));
|
|
4811
4980
|
}
|
|
4812
4981
|
// ──────────────────────────────────────────────────────────────────
|
|
4813
4982
|
// DOM / observation
|
|
@@ -4938,6 +5107,65 @@ var CloudBrowser = class {
|
|
|
4938
5107
|
height: resp.height
|
|
4939
5108
|
};
|
|
4940
5109
|
}
|
|
5110
|
+
/**
|
|
5111
|
+
* Reads the pixels of a <canvas> element directly in the renderer,
|
|
5112
|
+
* bypassing the origin-clean (tainted) security check and without executing
|
|
5113
|
+
* any page JavaScript — so cross-origin/tainted canvases (common in
|
|
5114
|
+
* captchas) read fine where a normal `toDataURL` / `getImageData` would
|
|
5115
|
+
* throw a SecurityError.
|
|
5116
|
+
*
|
|
5117
|
+
* {@link at} is not a valid target — a real <canvas> element is required.
|
|
5118
|
+
*
|
|
5119
|
+
* @param target - locator for the <canvas>; {@link css}, {@link js} or {@link node}
|
|
5120
|
+
* @param opts - optional `format`, `quality`, sub-rectangle and frame
|
|
5121
|
+
* override; see {@link ReadCanvasOpts}
|
|
5122
|
+
*
|
|
5123
|
+
* @returns ReadCanvasResult with the base64 image in `dataBase64`, the
|
|
5124
|
+
* canvas `width`/`height`, resolved `frameId`/`backendNodeId` and the
|
|
5125
|
+
* `originClean` flag
|
|
5126
|
+
*
|
|
5127
|
+
* @throws INVALID_LOCATOR - target is empty, uses at(x,y), or has multiple targets
|
|
5128
|
+
* @throws ELEMENT_NOT_FOUND - no element matched the locator
|
|
5129
|
+
* @throws FRAME_NOT_FOUND - the requested frame does not exist
|
|
5130
|
+
* @throws TIMEOUT - the operation exceeded the server-side timeout
|
|
5131
|
+
* @throws PAGE_NOT_ALIVE - the page has been closed
|
|
5132
|
+
*
|
|
5133
|
+
* @example
|
|
5134
|
+
* const res = await browser.readCanvas(css("#game canvas"));
|
|
5135
|
+
* await fs.writeFile("canvas.png", Buffer.from(res.dataBase64, "base64"));
|
|
5136
|
+
*
|
|
5137
|
+
* @example
|
|
5138
|
+
* // Read the left half as JPEG at quality 80.
|
|
5139
|
+
* const res = await browser.readCanvas(css("canvas"), {
|
|
5140
|
+
* format: "jpeg", quality: 80, sw: 150, sh: 300,
|
|
5141
|
+
* });
|
|
5142
|
+
*/
|
|
5143
|
+
async readCanvas(target, opts) {
|
|
5144
|
+
target.validateTarget("readCanvas", false);
|
|
5145
|
+
const req = create(ReadCanvasRequestSchema, {
|
|
5146
|
+
sessionId: this.sessionId,
|
|
5147
|
+
apiKey: this.apiKey,
|
|
5148
|
+
...elementFields(target, opts?.inFrame)
|
|
5149
|
+
});
|
|
5150
|
+
if (opts?.format !== void 0) req.format = opts.format;
|
|
5151
|
+
if (opts?.quality !== void 0) req.quality = opts.quality;
|
|
5152
|
+
if (opts?.sw !== void 0 && opts?.sh !== void 0 && opts.sw > 0 && opts.sh > 0) {
|
|
5153
|
+
req.sx = opts.sx ?? 0;
|
|
5154
|
+
req.sy = opts.sy ?? 0;
|
|
5155
|
+
req.sw = opts.sw;
|
|
5156
|
+
req.sh = opts.sh;
|
|
5157
|
+
}
|
|
5158
|
+
const resp = await this.client.readCanvas(req);
|
|
5159
|
+
return {
|
|
5160
|
+
success: resp.success,
|
|
5161
|
+
frameId: resp.frameId,
|
|
5162
|
+
backendNodeId: resp.backendNodeId,
|
|
5163
|
+
dataBase64: resp.dataBase64,
|
|
5164
|
+
width: resp.width,
|
|
5165
|
+
height: resp.height,
|
|
5166
|
+
originClean: resp.originClean
|
|
5167
|
+
};
|
|
5168
|
+
}
|
|
4941
5169
|
// ──────────────────────────────────────────────────────────────────
|
|
4942
5170
|
// Network interception
|
|
4943
5171
|
// ──────────────────────────────────────────────────────────────────
|
|
@@ -5648,11 +5876,18 @@ export {
|
|
|
5648
5876
|
AllFrames,
|
|
5649
5877
|
BrowserConfig,
|
|
5650
5878
|
BrowserScaleError,
|
|
5879
|
+
ClickError,
|
|
5651
5880
|
CloudBrowser,
|
|
5652
5881
|
DefaultSteadyMs,
|
|
5653
5882
|
DefaultVisible,
|
|
5654
5883
|
DefaultWaitTimeoutMs,
|
|
5884
|
+
DragError,
|
|
5885
|
+
FillError,
|
|
5655
5886
|
Locator,
|
|
5887
|
+
MoveError,
|
|
5888
|
+
ScrollError,
|
|
5889
|
+
SelectOptionError,
|
|
5890
|
+
WaitError,
|
|
5656
5891
|
WebSocketTransport,
|
|
5657
5892
|
at,
|
|
5658
5893
|
createWebSocketBrowser,
|