{"version":3,"sources":["proto/toit/api/user_pb.js","proto/toit/model/organization_pb.js","proto/toit/api/organization_pb.js","proto/toit/model/data_pb.js","proto/toit/api/auth_pb_service.js","proto/toit/api/user_pb_service.js","proto/toit/api/auth_pb.js","proto/toit/api/hardware_pb.js","proto/toit/model/device_pb.js","proto/toit/model/pubsub/message_pb.js","assets/theme/theme.ts","assets/images/toit-logo.svg","components/SnackBar.tsx","components/ChangePasswordView.tsx","components/ErrorView.tsx","components/InitiateResetPasswordView.tsx","assets/images/github-logo.svg","assets/images/google-logo.svg","components/CustomDivider.tsx","components/SignInView.tsx","assets/images/checkmark.svg","assets/images/dev-board.svg","components/SignUpView.tsx","components/MainView.tsx","service/proto/proto-service-client.ts","service/service-context.ts","App.tsx","serviceWorker.ts","index.tsx"],"names":["jspb","require","goog","global","Function","toit_model_organization_pb","object","extend","proto","toit_api_organization_pb","google_protobuf_timestamp_pb","exportSymbol","toit","api","SetPasswordRequest","opt_data","Message","initialize","this","inherits","DEBUG","COMPILED","displayName","SetPasswordResponse","InitiateResetPasswordRequest","InitiateResetPasswordResponse","ChangePasswordWithRPTokenRequest","ChangePasswordWithRPTokenResponse","GetCurrentUserRequest","GetCurrentUserResponse","ListOrganizationsRequest","ListOrganizationsResponse","repeatedFields_","GetOrganizationRequest","GetOrganizationResponse","CreatePaymentSubscriptionRequest","CreatePaymentSubscriptionResponse","ListPaymentInvoicesRequest","ListPaymentInvoicesResponse","Invoice","CancelPaymentSubscriptionRequest","CancelPaymentSubscriptionResponse","UserChange","oneofGroups_","UpdateUserRequest","UpdateUserResponse","GENERATE_TO_OBJECT","prototype","toObject","opt_includeInstance","includeInstance","msg","obj","oldPassword","getFieldWithDefault","newPassword","$jspbMessageInstance","deserializeBinary","bytes","reader","BinaryReader","deserializeBinaryFromReader","nextField","isEndGroup","getFieldNumber","value","readString","setOldPassword","setNewPassword","skipField","serializeBinary","writer","BinaryWriter","serializeBinaryToWriter","getResultBuffer","message","f","undefined","getOldPassword","length","writeString","getNewPassword","setProto3StringField","email","setEmail","getEmail","token","setToken","getToken","user","getUser","User","organization","getOrganization","Organization","readMessage","setUser","setOrganization","writeMessage","getWrapperField","setWrapperField","clearUser","hasUser","getField","clearOrganization","hasOrganization","userId","getUserId_asB64","offset","getOffset_asB64","limit","orderBy","orderDesc","getBooleanFieldWithDefault","readBytes","setUserId","setOffset","readInt64","setLimit","setOrderBy","readBool","setOrderDesc","getUserId_asU8","writeBytes","getOffset_asU8","getLimit","writeInt64","getOrderBy","getOrderDesc","writeBool","getUserId","bytesAsB64","bytesAsU8","setProto3BytesField","getOffset","setProto3IntField","setProto3BooleanField","organizationsList","toObjectList","getOrganizationsList","addOrganizations","writeRepeatedMessage","getRepeatedWrapperField","setOrganizationsList","setRepeatedWrapperField","opt_value","opt_index","addToRepeatedWrapperField","model","clearOrganizationsList","id","getId_asB64","setId","getId_asU8","getId","billingEmail","cardHolderName","cardCvc","cardExpiryMonth","cardExpiryYear","cardNumber","setBillingEmail","setCardHolderName","readInt32","setCardCvc","setCardExpiryMonth","setCardExpiryYear","readUint64","setCardNumber","getBillingEmail","getCardHolderName","getCardCvc","writeInt32","getCardExpiryMonth","getCardExpiryYear","getCardNumber","writeUint64","invoices","getInvoices","setInvoices","clearInvoices","hasInvoices","invoiceId","invoiceNumber","createdAt","getCreatedAt","Timestamp","pdfUrl","status","dueDate","getDueDate","receiptPdfUrl","amountPaid","setInvoiceId","setInvoiceNumber","setCreatedAt","setPdfUrl","setStatus","setDueDate","setReceiptPdfUrl","setAmountPaid","getInvoiceId","getInvoiceNumber","getPdfUrl","getStatus","getReceiptPdfUrl","getAmountPaid","clearCreatedAt","hasCreatedAt","clearDueDate","hasDueDate","ChangeCase","CHANGE_NOT_SET","SET_SETTINGS_WELCOME_CLOSED","SET_SETTINGS_NEWSLETTER","getChangeCase","computeOneofCase","setSettingsWelcomeClosed","setSettingsNewsletter","setSetSettingsWelcomeClosed","setSetSettingsNewsletter","getSetSettingsWelcomeClosed","setOneofField","clearSetSettingsWelcomeClosed","hasSetSettingsWelcomeClosed","getSetSettingsNewsletter","clearSetSettingsNewsletter","hasSetSettingsNewsletter","changesList","getChangesList","addChanges","setChangesList","clearChangesList","exports","PaymentDetails","Settings","APIKey","Tier","Customer","name","defaultSdk","city","country","phoneNumber","cvrNumber","tier","paymentDetails","getPaymentDetails","addressLine","postalCode","vatNumber","vatCountryCode","customer","hwidQuota","setName","setDefaultSdk","setCity","setCountry","setPhoneNumber","setCvrNumber","readEnum","setTier","setPaymentDetails","setAddressLine","setPostalCode","setVatNumber","setVatCountryCode","setCustomer","setHwidQuota","getName","getDefaultSdk","getCity","getCountry","getPhoneNumber","getCvrNumber","getTier","writeEnum","getAddressLine","getPostalCode","getVatNumber","getVatCountryCode","getCustomer","getHwidQuota","setProto3EnumField","clearPaymentDetails","hasPaymentDetails","last4","expiry","expiryMonth","expiryYear","brand","countryCode","cvcCheck","setLast4","setExpiry","setExpiryMonth","setExpiryYear","setBrand","setCountryCode","setCvcCheck","getLast4","getExpiry","getExpiryMonth","getExpiryYear","getBrand","getCountryCode","getCvcCheck","organizationId","getOrganizationId_asB64","settings","getSettings","setOrganizationId","setSettings","getOrganizationId_asU8","welcomeClosed","newsletter","setWelcomeClosed","setNewsletter","getWelcomeClosed","getNewsletter","getOrganizationId","clearSettings","hasSettings","Type","UNKNOWN","FREE","PAID","PERSON","ORGANIZATION","toit_api_hardware_pb","ListUsersRequest","ListUsersResponse","CreateUserRequest","CreateUserResponse","DeleteUserRequest","DeleteUserResponse","GetUserRequest","GetUserResponse","CreateAPIKeyRequest","CreateAPIKeyResponse","ListAPIKeysRequest","ListAPIKeysResponse","DeleteAPIKeyRequest","DeleteAPIKeyResponse","GetAPIKeySecretRequest","GetAPIKeySecretResponse","OrganizationChange","UpdateOrganizationRequest","UpdateOrganizationResponse","CreateNewOrganizationRequest","CreateNewOrganizationResponse","usersList","getUsersList","addUsers","setUsersList","clearUsersList","apiKey","getApiKey","setApiKey","clearApiKey","hasApiKey","secret","setSecret","getSecret","CITY","COUNTRY","PHONE_NUMBER","CVR_NUMBER","NAME","EMAIL","VAT_NUMBER","VAT_COUNTRY_CODE","ADDRESS_LINE","POSTAL_CODE","CUSTOMER","clearCity","hasCity","clearCountry","hasCountry","clearPhoneNumber","hasPhoneNumber","clearCvrNumber","hasCvrNumber","clearName","hasName","clearEmail","hasEmail","clearVatNumber","hasVatNumber","clearVatCountryCode","hasVatCountryCode","clearAddressLine","hasAddressLine","clearPostalCode","hasPostalCode","clearCustomer","hasCustomer","google_protobuf_struct_pb","MetricsData","GuageMetricData","CounterMetricData","PlotMetricData","HistogramMetricData","TopicData","LogData","namesList","getNamesList_asB64","gaugesList","getGaugesList","countersList","getCountersList","plotsList","getPlotsList","histogramsList","getHistogramsList","addNames","addGauges","addCounters","addPlots","addHistograms","getNamesList_asU8","writeRepeatedBytes","Level","DEBUG_LEVEL","INFO_LEVEL","CRITICAL_LEVEL","getNamesList","getRepeatedField","bytesListAsB64","bytesListAsU8","setNamesList","setField","addToRepeatedField","clearNamesList","setGaugesList","clearGaugesList","setCountersList","clearCountersList","setPlotsList","clearPlotsList","setHistogramsList","clearHistogramsList","getFloatingPointFieldWithDefault","nameIndex","created","getCreated","tagsMap","getTagsMap","level","readDouble","setValue","readUint32","setNameIndex","setCreated","Map","setLevel","getValue","writeDouble","getNameIndex","writeUint32","getLength","getLevel","setProto3FloatField","clearCreated","hasCreated","opt_noLazyCreate","getMapField","clearTagsMap","clear","count","mean","stdev","setCount","setMean","setStdev","getCount","getMean","getStdev","valuesMap","getValuesMap","clearValuesMap","topic","data","getData_asB64","setTopic","setData","getTopic","getData_asU8","getData","type","google","protobuf","Value","setType","setMessage","getType","getMessage","writeRepeatedString","PRINT","PROCESS_START","PROCESS_STOP","STACK_TRACE","BOOT","SHUTDOWN","PRINT_LEVEL","WARN_LEVEL","ERROR_LEVEL","FATAL_LEVEL","toit_api_auth_pb","grpc","Auth","serviceName","AuthClient","serviceHost","options","Login","methodName","service","requestStream","responseStream","requestType","LoginRequest","responseType","AuthResponse","Refresh","RefreshRequest","ChangeOrganization","ChangeOrganizationRequest","Logout","LogoutRequest","LogoutResponse","CreateOrganization","CreateOrganizationRequest","CreateOrganizationResponse","login","requestMessage","metadata","callback","arguments","client","unary","request","host","transport","debug","onEnd","response","Code","OK","err","Error","statusMessage","code","trailers","cancel","close","refresh","changeOrganization","logout","createOrganization","toit_api_user_pb","UserClient","SetPassword","InitiateResetPassword","ChangePasswordWithRPToken","GetCurrentUser","ListOrganizations","GetOrganization","ListUsers","CreateUser","CreatePaymentSubscription","ListPaymentInvoices","CancelPaymentSubscription","UpdateUser","setPassword","initiateResetPassword","changePasswordWithRPToken","getCurrentUser","listOrganizations","listUsers","createUser","createPaymentSubscription","listPaymentInvoices","listeners","end","invoke","onMessage","responseMessage","forEach","handler","details","on","push","cancelPaymentSubscription","updateUser","google_protobuf_duration_pb","username","password","remember","setUsername","setRemember","getUsername","getPassword","getRemember","refreshToken","getRefreshToken_asB64","setRefreshToken","getRefreshToken_asU8","getRefreshToken","accessToken","getAccessToken_asB64","tokenType","expiresIn","getExpiresIn","Duration","setAccessToken","setTokenType","setExpiresIn","getAccessToken_asU8","getTokenType","getAccessToken","clearExpiresIn","hasExpiresIn","toit_model_device_pb","toit_model_data_pb","toit_model_pubsub_message_pb","ClaimRequest","ClaimResponse","ReplaceRequest","ReplaceResponse","GetActiveDeviceIDRequest","GetActiveDeviceIDResponse","HardwareEvent","HardwareEventsRequest","HardwareEventsResponse","ClaimHardwareIdentityRequest","ClaimHardwareIdentityResponse","SetHardwareIdentityInfoRequest","SetHardwareIdentityInfoResponse","hardwareId","getHardwareId_asB64","initDeviceName","setHardwareId","setInitDeviceName","getHardwareId_asU8","getInitDeviceName","getHardwareId","hardwareInfo","getHardwareInfo","HardwareInfo","deviceId","getDeviceId_asB64","deviceName","setHardwareInfo","setDeviceId","setDeviceName","getDeviceId_asU8","getDeviceName","clearHardwareInfo","hasHardwareInfo","getDeviceId","newHardwareId","getNewHardwareId_asB64","currentHardwareId","getCurrentHardwareId_asB64","setNewHardwareId","setCurrentHardwareId","getNewHardwareId_asU8","getCurrentHardwareId_asU8","getNewHardwareId","getCurrentHardwareId","DataCase","DATA_NOT_SET","LOG","METRICS","PUBSUB","getDataCase","eventId","getEventId_asB64","jobId","getJobId_asB64","received","getReceived","log","getLog","metrics","getMetrics","pubsub","getPubsub","setEventId","setJobId","setReceived","setLog","setMetrics","setPubsub","getEventId_asU8","getJobId_asU8","LOGS","getEventId","getJobId","clearReceived","hasReceived","setOneofWrapperField","clearLog","hasLog","clearMetrics","hasMetrics","clearPubsub","hasPubsub","OffsetCase","OFFSET_NOT_SET","ID","TS","getOffsetCase","reverse","ts","getTs","setReverse","setTs","getReverse","clearId","hasId","clearTs","hasTs","event","getEvent","setEvent","clearEvent","hasEvent","flashStationSecret","setFlashStationSecret","getFlashStationSecret","hardwareIdentity","getHardwareIdentity","HardwareIdentity","setHardwareIdentity","clearHardwareIdentity","hasHardwareIdentity","info","getInfo","HardwareIdentityInfo","setInfo","clearInfo","hasInfo","google_protobuf_empty_pb","DeviceConfig","DeviceModulesConfig","DeviceRuntimeSettings","LoggingSettings","MetricsSettings","DeviceConnectionSettings","ConnectionSetting","WifiSetting","NBIoTSetting","DeviceBrokerSettings","DeviceStatus","DeviceModulesStatus","DeviceModules","DeviceModule","DeviceConnectionStatus","DeviceBootStatus","DeviceHealth","Power","BatteryCurve","Connectivity","Checkin","HardwareToDeviceInfo","DeviceEvent","Initiater","Device","Console","Info","Primitive","Diff","DeviceModelSettings","startedAfter","getStartedAfter","sdk","broker","getBroker","connection","getConnection","factoryAfter","getFactoryAfter","runtime","getRuntime","modules","getModules","modelSettings","getModelSettings","setStartedAfter","setSdk","setBroker","setConnection","setModel","setFactoryAfter","setRuntime","setModules","setModelSettings","getSdk","getModel","clearStartedAfter","hasStartedAfter","clearBroker","hasBroker","clearConnection","hasConnection","clearFactoryAfter","hasFactoryAfter","clearRuntime","hasRuntime","clearModules","hasModules","clearModelSettings","hasModelSettings","syncRequested","getSyncRequested","setSyncRequested","clearSyncRequested","hasSyncRequested","logging","getLogging","setLogging","clearLogging","hasLogging","maxOffline","getMaxOffline","connectionsList","getConnectionsList","eventQueueThreshold","setMaxOffline","addConnections","setEventQueueThreshold","getEventQueueThreshold","clearMaxOffline","hasMaxOffline","setConnectionsList","clearConnectionsList","wifi","getWifi","nbiot","getNbiot","setWifi","setNbiot","clearWifi","hasWifi","clearNbiot","hasNbiot","ssid","setSsid","getSsid","apn","bandsList","operator","pin","setApn","readPackedInt64","setBandsList","setOperator","setPin","getApn","getBandsList","writePackedInt64","getOperator","getPin","addBands","clearBandsList","port","cn","protocol","setHost","setPort","setCn","setProtocol","getHost","getPort","getCn","getProtocol","revision","epoch","getEpoch_asB64","stateRevision","updated","getUpdated","configRevision","config","getConfig","connected","boot","getBoot","health","getHealth","setRevision","setEpoch","setStateRevision","setUpdated","setConfigRevision","setConfig","setConnected","setBoot","setHealth","getRevision","getEpoch_asU8","getStateRevision","getConfigRevision","getConnected","getEpoch","clearUpdated","hasUpdated","clearConfig","hasConfig","clearBoot","hasBoot","clearHealth","hasHealth","lastUpdated","getLastUpdated","setLastUpdated","clearLastUpdated","hasLastUpdated","cellular","getCellular","setCellular","clearCellular","hasCellular","version","setVersion","getVersion","index","setIndex","getIndex","lastBoot","getLastBoot","inFactory","lastFactoryBoot","getLastFactoryBoot","setLastBoot","setInFactory","setLastFactoryBoot","getInFactory","clearLastBoot","hasLastBoot","clearLastFactoryBoot","hasLastFactoryBoot","power","getPower","batteryCurve","getBatteryCurve","connectivity","getConnectivity","setPower","setBatteryCurve","setConnectivity","PowerCase","POWER_NOT_SET","BATTERY","PLUGGEDIN","getPowerCase","battery","pluggedin","getPluggedin","Empty","setBattery","setPluggedin","getBattery","clearBattery","hasBattery","clearPluggedin","hasPluggedin","clearValue","hasValue","slope","setSlope","getSlope","lastSeen","getLastSeen","checkinsList","getCheckinsList","setLastSeen","addCheckins","missed","setMissed","getMissed","clearLastSeen","hasLastSeen","setCheckinsList","clearCheckinsList","clearPower","hasPower","clearBatteryCurve","hasBatteryCurve","clearConnectivity","hasConnectivity","sequenceNumber","batch","privateKey","getPrivateKey_asB64","certificate","getCertificate_asB64","setSequenceNumber","setBatch","setPrivateKey","setCertificate","getSequenceNumber","getBatch","getPrivateKey_asU8","getCertificate_asU8","getPrivateKey","getCertificate","factorySdkVersion","flashedBy","getFlashedBy_asB64","iccid","chipId","factoryDeviceModel","setFactorySdkVersion","setFlashedBy","setIccid","setChipId","setFactoryDeviceModel","getFactorySdkVersion","getFlashedBy_asU8","getIccid","getChipId","getFactoryDeviceModel","getFlashedBy","hardwareFqdn","setHardwareFqdn","getHardwareFqdn","bound","getBound","unbound","getUnbound","setBound","setUnbound","clearBound","hasBound","clearUnbound","hasUnbound","initiater","getInitiater","informationList","getInformationList","setMsg","setInitiater","addInformation","getMsg","CONFIG_CHANGE","STATUS_CHANGE","NEXT_ACTION","DEVICE_ACTION","QUEUE_OVERFLOW","REQUEST_FILE","InitiaterCase","INITIATER_NOT_SET","DEVICE","CONSOLE","USER","getInitiaterCase","device","getDevice","console","getConsole","setDevice","setConsole","clearDevice","hasDevice","clearConsole","hasConsole","key","setKey","getKey","ValueCase","VALUE_NOT_SET","PRIMITIVE","DIFF","ERROR","getValueCase","primitive","getPrimitive","diff","getDiff","error","getError","setPrimitive","setDiff","setError","getValue_asB64","getValue_asU8","INVALID","JSON","STRING","from","getFrom","to","getTo","setFrom","setTo","clearFrom","hasFrom","clearTo","hasTo","clearPrimitive","hasPrimitive","clearDiff","hasDiff","clearError","hasError","clearInitiater","hasInitiater","setInformationList","clearInformationList","parametersMap","getParametersMap","clearParametersMap","DeviceConnectionType","DEVICE_CONNECTION_TYPE_UNKNOWN","DEVICE_CONNECTION_TYPE_WIFI","DEVICE_CONNECTION_TYPE_NBIOT","DEVICE_CONNECTION_TYPE_OS","DeviceChangeType","DEVICE_CHANGE_UNKNOWN","DEVICE_CHANGE_ADDED","DEVICE_CHANGE_DELETED","DEVICE_CHANGE_CHANGED","DEVICE_CHANGE_HEARTBEAT","DEVICE_CHANGE_CONNECTED","DEVICE_CHANGE_DISCONNECTED","DeviceSessionChangeType","UNKNOWN_TYPE","CONNECTED","DISCONNECTED","DeviceAction","DEVICE_ACTION_UNKNOWN","DEVICE_ACTION_NOP","DEVICE_ACTION_REBOOT","DEVICE_ACTION_NEW_EPOCH","DEVICE_ACTION_REPORT_CONFIG","DEVICE_ACTION_FACTORY_PROMOTE","DEVICE_ACTION_UPDATE_CONFIG","DEVICE_ACTION_UPDATE_FIRMWARE","DEVICE_ACTION_FACTORY_RESET","DEVICE_ACTION_RECONCILE","DEVICE_ACTION_UPDATE_PARTIAL_FIRMWARE","DEVICE_ACTION_REPORT_MODULES","DEVICE_ACTION_UPDATE_MODULE_CELLULAR","DeviceModuleType","CELLULAR","Envelope","Publisher","External","clearMessage","hasMessage","PublisherCase","PUBLISHER_NOT_SET","EXTERNAL","getPublisherCase","external","getExternal","setExternal","writtenAt","getWrittenAt","setWrittenAt","clearWrittenAt","hasWrittenAt","clearExternal","hasExternal","publisher","getPublisher","setPublisher","clearPublisher","hasPublisher","white","black","theme","createMuiTheme","palette","primary","main","light","dark","secondary","typography","fontFamily","join","body1","fontSize","body2","h1","h2","h3","h4","h5","h6","padding","overrides","MuiButton","root","textTransform","boxShadow","outlined","borderColor","boxSizing","color","backgroundColor","contained","_extends","Object","assign","target","i","source","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref2","createElement","d","fill","_ref3","_ref4","_ref5","_ref6","stroke","strokeWidth","strokeLinecap","strokeLinejoin","_ref","svgRef","title","props","width","height","viewBox","ref","ForwardRef","forwardRef","SnackBarComponent","Snackbar","anchorOrigin","vertical","horizontal","open","autoHideDuration","action","Fragment","buttonProps","text","LinkButton","link","IconButton","aria-label","onClick","onClose","reason","className","classes","snackbarMessage","resultIcon","children","React","Component","history","useHistory","Button","size","variant","SnackBar","withStyles","createStyles","display","alignItems","marginRight","spacing","buttonText","textDecoration","ChangePasswordView","state","errMsg","newpassword","confirmpassword","success","handleTextChange","setState","prevState","handleChangePassword","preventDefault","context","getServiceClient","match","params","then","result","setTimeout","window","location","href","CONSOLE_URL","catch","e","onCloseInfoSnackbar","tokenExpired","Grid","container","Helmet","item","xs","Link","logo","justify","content","heading","Typography","noValidate","onSubmit","changePasswordForm","TextField","margin","required","fullWidth","label","onChange","autoFocus","autoComplete","hidden","button","disabled","component","RouterLink","marginLeft","paddingLeft","paddingRight","paddingTop","breakpoints","only","maxWidth","marginTop","marginBottom","paddingBottom","textDecorationLine","ErrorView","getLast","v","values","queryString","parse","document","search","success_uri","client_id","OAUTH_URL","encodeURIComponent","errorText","Box","borderStyle","borderWidth","borderRadius","minHeight","InitiateResetPasswordView","submitted","handleInitiateResetPassword","leftContent","initiateResetPasswordForm","descriptionContainer","background","signUpContent","rightContent","topButton","divider","inputLabel","checkmarkText","perkList","avatar","mobileSpacer","border","borderBottom","SignInView","method","startIcon","InputLabel","FormHelperText","align","_ref7","_ref8","_ref9","rx","transform","_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","SignUpView","isSending","snackbarOpen","initialValues","subscribed_to_newsletter","validationSchema","yup","defined","body","stringify","fetch","headers","credentials","ok","analytics","track","integrations","All","Reddit","style","alt","src","md","bind","handleSubmit","handleChange","touched","Boolean","errors","helperText","DialogContentText","FormControlLabel","control","Checkbox","checkbox","labelPlacement","checkboxForm","signUpButton","textSpacing","direction","planContent","List","ListItem","ListItemAvatar","Avatar","ListItemText","pages","path","exact","overflowX","down","MainView","pathname","startsWith","page","map","ProtoServiceClient","url","userClient","authClient","CrossBrowserHttpTransport","withCredentials","req","Promise","resolve","reject","resp","ServiceContext","serviceClient","getHeadMeta","elements","getElementsByName","query","API_URL","SEGMENT_KEY","RedditTrackingSetup","properties","forReddit","rdt","setupRedditTracking","App","segmentKey","show","changeConsent","onAnalyticsReady","redditSnippetLoader","hostname","ReactDOM","render","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.acf99169.chunk.js","sourcesContent":["/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar toit_model_organization_pb = require('../../toit/model/organization_pb.js');\ngoog.object.extend(proto, toit_model_organization_pb);\nvar toit_api_organization_pb = require('../../toit/api/organization_pb.js');\ngoog.object.extend(proto, toit_api_organization_pb);\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.toit.api.CancelPaymentSubscriptionRequest', null, global);\ngoog.exportSymbol('proto.toit.api.CancelPaymentSubscriptionResponse', null, global);\ngoog.exportSymbol('proto.toit.api.ChangePasswordWithRPTokenRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ChangePasswordWithRPTokenResponse', null, global);\ngoog.exportSymbol('proto.toit.api.CreatePaymentSubscriptionRequest', null, global);\ngoog.exportSymbol('proto.toit.api.CreatePaymentSubscriptionResponse', null, global);\ngoog.exportSymbol('proto.toit.api.GetCurrentUserRequest', null, global);\ngoog.exportSymbol('proto.toit.api.GetCurrentUserResponse', null, global);\ngoog.exportSymbol('proto.toit.api.GetOrganizationRequest', null, global);\ngoog.exportSymbol('proto.toit.api.GetOrganizationResponse', null, global);\ngoog.exportSymbol('proto.toit.api.InitiateResetPasswordRequest', null, global);\ngoog.exportSymbol('proto.toit.api.InitiateResetPasswordResponse', null, global);\ngoog.exportSymbol('proto.toit.api.Invoice', null, global);\ngoog.exportSymbol('proto.toit.api.ListOrganizationsRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ListOrganizationsResponse', null, global);\ngoog.exportSymbol('proto.toit.api.ListPaymentInvoicesRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ListPaymentInvoicesResponse', null, global);\ngoog.exportSymbol('proto.toit.api.SetPasswordRequest', null, global);\ngoog.exportSymbol('proto.toit.api.SetPasswordResponse', null, global);\ngoog.exportSymbol('proto.toit.api.UpdateUserRequest', null, global);\ngoog.exportSymbol('proto.toit.api.UpdateUserResponse', null, global);\ngoog.exportSymbol('proto.toit.api.UserChange', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.SetPasswordRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.SetPasswordRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.SetPasswordRequest.displayName = 'proto.toit.api.SetPasswordRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.SetPasswordResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.SetPasswordResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.SetPasswordResponse.displayName = 'proto.toit.api.SetPasswordResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.InitiateResetPasswordRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.InitiateResetPasswordRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.InitiateResetPasswordRequest.displayName = 'proto.toit.api.InitiateResetPasswordRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.InitiateResetPasswordResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.InitiateResetPasswordResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.InitiateResetPasswordResponse.displayName = 'proto.toit.api.InitiateResetPasswordResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ChangePasswordWithRPTokenRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ChangePasswordWithRPTokenRequest.displayName = 'proto.toit.api.ChangePasswordWithRPTokenRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ChangePasswordWithRPTokenResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ChangePasswordWithRPTokenResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ChangePasswordWithRPTokenResponse.displayName = 'proto.toit.api.ChangePasswordWithRPTokenResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetCurrentUserRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetCurrentUserRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetCurrentUserRequest.displayName = 'proto.toit.api.GetCurrentUserRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetCurrentUserResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetCurrentUserResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetCurrentUserResponse.displayName = 'proto.toit.api.GetCurrentUserResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListOrganizationsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ListOrganizationsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListOrganizationsRequest.displayName = 'proto.toit.api.ListOrganizationsRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListOrganizationsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.api.ListOrganizationsResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.api.ListOrganizationsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListOrganizationsResponse.displayName = 'proto.toit.api.ListOrganizationsResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetOrganizationRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetOrganizationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetOrganizationRequest.displayName = 'proto.toit.api.GetOrganizationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetOrganizationResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetOrganizationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetOrganizationResponse.displayName = 'proto.toit.api.GetOrganizationResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreatePaymentSubscriptionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreatePaymentSubscriptionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreatePaymentSubscriptionRequest.displayName = 'proto.toit.api.CreatePaymentSubscriptionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreatePaymentSubscriptionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreatePaymentSubscriptionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreatePaymentSubscriptionResponse.displayName = 'proto.toit.api.CreatePaymentSubscriptionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListPaymentInvoicesRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ListPaymentInvoicesRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListPaymentInvoicesRequest.displayName = 'proto.toit.api.ListPaymentInvoicesRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListPaymentInvoicesResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ListPaymentInvoicesResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListPaymentInvoicesResponse.displayName = 'proto.toit.api.ListPaymentInvoicesResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.Invoice = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.Invoice, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.Invoice.displayName = 'proto.toit.api.Invoice';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CancelPaymentSubscriptionRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CancelPaymentSubscriptionRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CancelPaymentSubscriptionRequest.displayName = 'proto.toit.api.CancelPaymentSubscriptionRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CancelPaymentSubscriptionResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CancelPaymentSubscriptionResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CancelPaymentSubscriptionResponse.displayName = 'proto.toit.api.CancelPaymentSubscriptionResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.UserChange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.api.UserChange.oneofGroups_);\n};\ngoog.inherits(proto.toit.api.UserChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.UserChange.displayName = 'proto.toit.api.UserChange';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.UpdateUserRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.api.UpdateUserRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.api.UpdateUserRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.UpdateUserRequest.displayName = 'proto.toit.api.UpdateUserRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.UpdateUserResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.UpdateUserResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.UpdateUserResponse.displayName = 'proto.toit.api.UpdateUserResponse';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.SetPasswordRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.SetPasswordRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.SetPasswordRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetPasswordRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n oldPassword: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n newPassword: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.SetPasswordRequest}\n */\nproto.toit.api.SetPasswordRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.SetPasswordRequest;\n return proto.toit.api.SetPasswordRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.SetPasswordRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.SetPasswordRequest}\n */\nproto.toit.api.SetPasswordRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setOldPassword(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setNewPassword(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.SetPasswordRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.SetPasswordRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.SetPasswordRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetPasswordRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOldPassword();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getNewPassword();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string old_password = 1;\n * @return {string}\n */\nproto.toit.api.SetPasswordRequest.prototype.getOldPassword = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.SetPasswordRequest.prototype.setOldPassword = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string new_password = 2;\n * @return {string}\n */\nproto.toit.api.SetPasswordRequest.prototype.getNewPassword = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.SetPasswordRequest.prototype.setNewPassword = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.SetPasswordResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.SetPasswordResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.SetPasswordResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetPasswordResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.SetPasswordResponse}\n */\nproto.toit.api.SetPasswordResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.SetPasswordResponse;\n return proto.toit.api.SetPasswordResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.SetPasswordResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.SetPasswordResponse}\n */\nproto.toit.api.SetPasswordResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.SetPasswordResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.SetPasswordResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.SetPasswordResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetPasswordResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.InitiateResetPasswordRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.InitiateResetPasswordRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.InitiateResetPasswordRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.InitiateResetPasswordRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n email: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.InitiateResetPasswordRequest}\n */\nproto.toit.api.InitiateResetPasswordRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.InitiateResetPasswordRequest;\n return proto.toit.api.InitiateResetPasswordRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.InitiateResetPasswordRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.InitiateResetPasswordRequest}\n */\nproto.toit.api.InitiateResetPasswordRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.InitiateResetPasswordRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.InitiateResetPasswordRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.InitiateResetPasswordRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.InitiateResetPasswordRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string email = 1;\n * @return {string}\n */\nproto.toit.api.InitiateResetPasswordRequest.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.InitiateResetPasswordRequest.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.InitiateResetPasswordResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.InitiateResetPasswordResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.InitiateResetPasswordResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.InitiateResetPasswordResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.InitiateResetPasswordResponse}\n */\nproto.toit.api.InitiateResetPasswordResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.InitiateResetPasswordResponse;\n return proto.toit.api.InitiateResetPasswordResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.InitiateResetPasswordResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.InitiateResetPasswordResponse}\n */\nproto.toit.api.InitiateResetPasswordResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.InitiateResetPasswordResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.InitiateResetPasswordResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.InitiateResetPasswordResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.InitiateResetPasswordResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ChangePasswordWithRPTokenRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ChangePasswordWithRPTokenRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n token: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n newPassword: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ChangePasswordWithRPTokenRequest}\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ChangePasswordWithRPTokenRequest;\n return proto.toit.api.ChangePasswordWithRPTokenRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ChangePasswordWithRPTokenRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ChangePasswordWithRPTokenRequest}\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setToken(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setNewPassword(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ChangePasswordWithRPTokenRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ChangePasswordWithRPTokenRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getToken();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getNewPassword();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string token = 1;\n * @return {string}\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.prototype.getToken = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ChangePasswordWithRPTokenRequest.prototype.setToken = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string new_password = 2;\n * @return {string}\n */\nproto.toit.api.ChangePasswordWithRPTokenRequest.prototype.getNewPassword = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ChangePasswordWithRPTokenRequest.prototype.setNewPassword = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ChangePasswordWithRPTokenResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ChangePasswordWithRPTokenResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ChangePasswordWithRPTokenResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ChangePasswordWithRPTokenResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ChangePasswordWithRPTokenResponse}\n */\nproto.toit.api.ChangePasswordWithRPTokenResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ChangePasswordWithRPTokenResponse;\n return proto.toit.api.ChangePasswordWithRPTokenResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ChangePasswordWithRPTokenResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ChangePasswordWithRPTokenResponse}\n */\nproto.toit.api.ChangePasswordWithRPTokenResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ChangePasswordWithRPTokenResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ChangePasswordWithRPTokenResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ChangePasswordWithRPTokenResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ChangePasswordWithRPTokenResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetCurrentUserRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetCurrentUserRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetCurrentUserRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetCurrentUserRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetCurrentUserRequest}\n */\nproto.toit.api.GetCurrentUserRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetCurrentUserRequest;\n return proto.toit.api.GetCurrentUserRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetCurrentUserRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetCurrentUserRequest}\n */\nproto.toit.api.GetCurrentUserRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetCurrentUserRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetCurrentUserRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetCurrentUserRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetCurrentUserRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetCurrentUserResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetCurrentUserResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetCurrentUserResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetCurrentUserResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n user: (f = msg.getUser()) && toit_model_organization_pb.User.toObject(includeInstance, f),\n organization: (f = msg.getOrganization()) && toit_model_organization_pb.Organization.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetCurrentUserResponse}\n */\nproto.toit.api.GetCurrentUserResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetCurrentUserResponse;\n return proto.toit.api.GetCurrentUserResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetCurrentUserResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetCurrentUserResponse}\n */\nproto.toit.api.GetCurrentUserResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.User;\n reader.readMessage(value,toit_model_organization_pb.User.deserializeBinaryFromReader);\n msg.setUser(value);\n break;\n case 2:\n var value = new toit_model_organization_pb.Organization;\n reader.readMessage(value,toit_model_organization_pb.Organization.deserializeBinaryFromReader);\n msg.setOrganization(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetCurrentUserResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetCurrentUserResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetCurrentUserResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetCurrentUserResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUser();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_organization_pb.User.serializeBinaryToWriter\n );\n }\n f = message.getOrganization();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n toit_model_organization_pb.Organization.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional toit.model.User user = 1;\n * @return {?proto.toit.model.User}\n */\nproto.toit.api.GetCurrentUserResponse.prototype.getUser = function() {\n return /** @type{?proto.toit.model.User} */ (\n jspb.Message.getWrapperField(this, toit_model_organization_pb.User, 1));\n};\n\n\n/** @param {?proto.toit.model.User|undefined} value */\nproto.toit.api.GetCurrentUserResponse.prototype.setUser = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.GetCurrentUserResponse.prototype.clearUser = function() {\n this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.GetCurrentUserResponse.prototype.hasUser = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional toit.model.Organization organization = 2;\n * @return {?proto.toit.model.Organization}\n */\nproto.toit.api.GetCurrentUserResponse.prototype.getOrganization = function() {\n return /** @type{?proto.toit.model.Organization} */ (\n jspb.Message.getWrapperField(this, toit_model_organization_pb.Organization, 2));\n};\n\n\n/** @param {?proto.toit.model.Organization|undefined} value */\nproto.toit.api.GetCurrentUserResponse.prototype.setOrganization = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.GetCurrentUserResponse.prototype.clearOrganization = function() {\n this.setOrganization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.GetCurrentUserResponse.prototype.hasOrganization = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListOrganizationsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListOrganizationsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListOrganizationsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n userId: msg.getUserId_asB64(),\n offset: msg.getOffset_asB64(),\n limit: jspb.Message.getFieldWithDefault(msg, 3, 0),\n orderBy: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n orderDesc: jspb.Message.getBooleanFieldWithDefault(msg, 5, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListOrganizationsRequest}\n */\nproto.toit.api.ListOrganizationsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListOrganizationsRequest;\n return proto.toit.api.ListOrganizationsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListOrganizationsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListOrganizationsRequest}\n */\nproto.toit.api.ListOrganizationsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUserId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOffset(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLimit(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setOrderBy(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setOrderDesc(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListOrganizationsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListOrganizationsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListOrganizationsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUserId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getOffset_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getLimit();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getOrderBy();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getOrderDesc();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes user_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getUserId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes user_id = 1;\n * This is a type-conversion wrapper around `getUserId()`\n * @return {string}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getUserId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUserId()));\n};\n\n\n/**\n * optional bytes user_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUserId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getUserId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUserId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListOrganizationsRequest.prototype.setUserId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes offset = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getOffset = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes offset = 2;\n * This is a type-conversion wrapper around `getOffset()`\n * @return {string}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getOffset_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOffset()));\n};\n\n\n/**\n * optional bytes offset = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOffset()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getOffset_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOffset()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListOrganizationsRequest.prototype.setOffset = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional int64 limit = 3;\n * @return {number}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.ListOrganizationsRequest.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional string order_by = 4;\n * @return {string}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getOrderBy = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ListOrganizationsRequest.prototype.setOrderBy = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional bool order_desc = 5;\n * @return {boolean}\n */\nproto.toit.api.ListOrganizationsRequest.prototype.getOrderDesc = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.api.ListOrganizationsRequest.prototype.setOrderDesc = function(value) {\n jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.api.ListOrganizationsResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListOrganizationsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListOrganizationsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListOrganizationsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListOrganizationsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n organizationsList: jspb.Message.toObjectList(msg.getOrganizationsList(),\n toit_model_organization_pb.Organization.toObject, includeInstance),\n offset: msg.getOffset_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListOrganizationsResponse}\n */\nproto.toit.api.ListOrganizationsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListOrganizationsResponse;\n return proto.toit.api.ListOrganizationsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListOrganizationsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListOrganizationsResponse}\n */\nproto.toit.api.ListOrganizationsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.Organization;\n reader.readMessage(value,toit_model_organization_pb.Organization.deserializeBinaryFromReader);\n msg.addOrganizations(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOffset(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListOrganizationsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListOrganizationsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListOrganizationsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListOrganizationsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOrganizationsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n toit_model_organization_pb.Organization.serializeBinaryToWriter\n );\n }\n f = message.getOffset_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * repeated toit.model.Organization organizations = 1;\n * @return {!Array}\n */\nproto.toit.api.ListOrganizationsResponse.prototype.getOrganizationsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, toit_model_organization_pb.Organization, 1));\n};\n\n\n/** @param {!Array} value */\nproto.toit.api.ListOrganizationsResponse.prototype.setOrganizationsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.toit.model.Organization=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.Organization}\n */\nproto.toit.api.ListOrganizationsResponse.prototype.addOrganizations = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.toit.model.Organization, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.api.ListOrganizationsResponse.prototype.clearOrganizationsList = function() {\n this.setOrganizationsList([]);\n};\n\n\n/**\n * optional bytes offset = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListOrganizationsResponse.prototype.getOffset = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes offset = 2;\n * This is a type-conversion wrapper around `getOffset()`\n * @return {string}\n */\nproto.toit.api.ListOrganizationsResponse.prototype.getOffset_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOffset()));\n};\n\n\n/**\n * optional bytes offset = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOffset()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListOrganizationsResponse.prototype.getOffset_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOffset()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListOrganizationsResponse.prototype.setOffset = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetOrganizationRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetOrganizationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetOrganizationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetOrganizationRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetOrganizationRequest}\n */\nproto.toit.api.GetOrganizationRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetOrganizationRequest;\n return proto.toit.api.GetOrganizationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetOrganizationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetOrganizationRequest}\n */\nproto.toit.api.GetOrganizationRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetOrganizationRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetOrganizationRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetOrganizationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetOrganizationRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.GetOrganizationRequest.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.api.GetOrganizationRequest.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.GetOrganizationRequest.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.GetOrganizationRequest.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetOrganizationResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetOrganizationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetOrganizationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetOrganizationResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n organization: (f = msg.getOrganization()) && toit_model_organization_pb.Organization.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetOrganizationResponse}\n */\nproto.toit.api.GetOrganizationResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetOrganizationResponse;\n return proto.toit.api.GetOrganizationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetOrganizationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetOrganizationResponse}\n */\nproto.toit.api.GetOrganizationResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.Organization;\n reader.readMessage(value,toit_model_organization_pb.Organization.deserializeBinaryFromReader);\n msg.setOrganization(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetOrganizationResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetOrganizationResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetOrganizationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetOrganizationResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOrganization();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_organization_pb.Organization.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional toit.model.Organization organization = 1;\n * @return {?proto.toit.model.Organization}\n */\nproto.toit.api.GetOrganizationResponse.prototype.getOrganization = function() {\n return /** @type{?proto.toit.model.Organization} */ (\n jspb.Message.getWrapperField(this, toit_model_organization_pb.Organization, 1));\n};\n\n\n/** @param {?proto.toit.model.Organization|undefined} value */\nproto.toit.api.GetOrganizationResponse.prototype.setOrganization = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.GetOrganizationResponse.prototype.clearOrganization = function() {\n this.setOrganization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.GetOrganizationResponse.prototype.hasOrganization = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreatePaymentSubscriptionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreatePaymentSubscriptionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n billingEmail: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n cardHolderName: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n cardCvc: jspb.Message.getFieldWithDefault(msg, 3, 0),\n cardExpiryMonth: jspb.Message.getFieldWithDefault(msg, 4, 0),\n cardExpiryYear: jspb.Message.getFieldWithDefault(msg, 5, 0),\n cardNumber: jspb.Message.getFieldWithDefault(msg, 6, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreatePaymentSubscriptionRequest}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreatePaymentSubscriptionRequest;\n return proto.toit.api.CreatePaymentSubscriptionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreatePaymentSubscriptionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreatePaymentSubscriptionRequest}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setBillingEmail(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCardHolderName(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setCardCvc(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setCardExpiryMonth(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setCardExpiryYear(value);\n break;\n case 6:\n var value = /** @type {number} */ (reader.readUint64());\n msg.setCardNumber(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreatePaymentSubscriptionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreatePaymentSubscriptionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBillingEmail();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getCardHolderName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getCardCvc();\n if (f !== 0) {\n writer.writeInt32(\n 3,\n f\n );\n }\n f = message.getCardExpiryMonth();\n if (f !== 0) {\n writer.writeInt32(\n 4,\n f\n );\n }\n f = message.getCardExpiryYear();\n if (f !== 0) {\n writer.writeInt32(\n 5,\n f\n );\n }\n f = message.getCardNumber();\n if (f !== 0) {\n writer.writeUint64(\n 6,\n f\n );\n }\n};\n\n\n/**\n * optional string billing_email = 1;\n * @return {string}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.getBillingEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.setBillingEmail = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string card_holder_name = 2;\n * @return {string}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.getCardHolderName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.setCardHolderName = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional int32 card_cvc = 3;\n * @return {number}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.getCardCvc = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.setCardCvc = function(value) {\n jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional int32 card_expiry_month = 4;\n * @return {number}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.getCardExpiryMonth = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.setCardExpiryMonth = function(value) {\n jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional int32 card_expiry_year = 5;\n * @return {number}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.getCardExpiryYear = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.setCardExpiryYear = function(value) {\n jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional uint64 card_number = 6;\n * @return {number}\n */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.getCardNumber = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.CreatePaymentSubscriptionRequest.prototype.setCardNumber = function(value) {\n jspb.Message.setProto3IntField(this, 6, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreatePaymentSubscriptionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreatePaymentSubscriptionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreatePaymentSubscriptionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreatePaymentSubscriptionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreatePaymentSubscriptionResponse}\n */\nproto.toit.api.CreatePaymentSubscriptionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreatePaymentSubscriptionResponse;\n return proto.toit.api.CreatePaymentSubscriptionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreatePaymentSubscriptionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreatePaymentSubscriptionResponse}\n */\nproto.toit.api.CreatePaymentSubscriptionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreatePaymentSubscriptionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreatePaymentSubscriptionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreatePaymentSubscriptionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreatePaymentSubscriptionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListPaymentInvoicesRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListPaymentInvoicesRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListPaymentInvoicesRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n limit: jspb.Message.getFieldWithDefault(msg, 1, 0),\n offset: msg.getOffset_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListPaymentInvoicesRequest}\n */\nproto.toit.api.ListPaymentInvoicesRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListPaymentInvoicesRequest;\n return proto.toit.api.ListPaymentInvoicesRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListPaymentInvoicesRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListPaymentInvoicesRequest}\n */\nproto.toit.api.ListPaymentInvoicesRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLimit(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOffset(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListPaymentInvoicesRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListPaymentInvoicesRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListPaymentInvoicesRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLimit();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getOffset_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int64 limit = 1;\n * @return {number}\n */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bytes offset = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.getOffset = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes offset = 2;\n * This is a type-conversion wrapper around `getOffset()`\n * @return {string}\n */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.getOffset_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOffset()));\n};\n\n\n/**\n * optional bytes offset = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOffset()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.getOffset_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOffset()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListPaymentInvoicesRequest.prototype.setOffset = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListPaymentInvoicesResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListPaymentInvoicesResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListPaymentInvoicesResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListPaymentInvoicesResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n invoices: (f = msg.getInvoices()) && proto.toit.api.Invoice.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListPaymentInvoicesResponse}\n */\nproto.toit.api.ListPaymentInvoicesResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListPaymentInvoicesResponse;\n return proto.toit.api.ListPaymentInvoicesResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListPaymentInvoicesResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListPaymentInvoicesResponse}\n */\nproto.toit.api.ListPaymentInvoicesResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.api.Invoice;\n reader.readMessage(value,proto.toit.api.Invoice.deserializeBinaryFromReader);\n msg.setInvoices(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListPaymentInvoicesResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListPaymentInvoicesResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListPaymentInvoicesResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListPaymentInvoicesResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getInvoices();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.api.Invoice.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Invoice invoices = 1;\n * @return {?proto.toit.api.Invoice}\n */\nproto.toit.api.ListPaymentInvoicesResponse.prototype.getInvoices = function() {\n return /** @type{?proto.toit.api.Invoice} */ (\n jspb.Message.getWrapperField(this, proto.toit.api.Invoice, 1));\n};\n\n\n/** @param {?proto.toit.api.Invoice|undefined} value */\nproto.toit.api.ListPaymentInvoicesResponse.prototype.setInvoices = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.ListPaymentInvoicesResponse.prototype.clearInvoices = function() {\n this.setInvoices(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.ListPaymentInvoicesResponse.prototype.hasInvoices = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.Invoice.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.Invoice.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.Invoice} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.Invoice.toObject = function(includeInstance, msg) {\n var f, obj = {\n invoiceId: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n invoiceNumber: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n createdAt: (f = msg.getCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n pdfUrl: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n status: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n dueDate: (f = msg.getDueDate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n receiptPdfUrl: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n amountPaid: jspb.Message.getFieldWithDefault(msg, 8, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.Invoice}\n */\nproto.toit.api.Invoice.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.Invoice;\n return proto.toit.api.Invoice.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.Invoice} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.Invoice}\n */\nproto.toit.api.Invoice.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setInvoiceId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setInvoiceNumber(value);\n break;\n case 3:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setCreatedAt(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setPdfUrl(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setStatus(value);\n break;\n case 6:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setDueDate(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setReceiptPdfUrl(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setAmountPaid(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.Invoice.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.Invoice.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.Invoice} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.Invoice.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getInvoiceId();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getInvoiceNumber();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getCreatedAt();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getPdfUrl();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getStatus();\n if (f.length > 0) {\n writer.writeString(\n 5,\n f\n );\n }\n f = message.getDueDate();\n if (f != null) {\n writer.writeMessage(\n 6,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getReceiptPdfUrl();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n f = message.getAmountPaid();\n if (f !== 0) {\n writer.writeInt64(\n 8,\n f\n );\n }\n};\n\n\n/**\n * optional string invoice_id = 1;\n * @return {string}\n */\nproto.toit.api.Invoice.prototype.getInvoiceId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.Invoice.prototype.setInvoiceId = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string invoice_number = 2;\n * @return {string}\n */\nproto.toit.api.Invoice.prototype.getInvoiceNumber = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.Invoice.prototype.setInvoiceNumber = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp created_at = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.api.Invoice.prototype.getCreatedAt = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.api.Invoice.prototype.setCreatedAt = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.Invoice.prototype.clearCreatedAt = function() {\n this.setCreatedAt(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.Invoice.prototype.hasCreatedAt = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional string pdf_url = 4;\n * @return {string}\n */\nproto.toit.api.Invoice.prototype.getPdfUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.Invoice.prototype.setPdfUrl = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string status = 5;\n * @return {string}\n */\nproto.toit.api.Invoice.prototype.getStatus = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.Invoice.prototype.setStatus = function(value) {\n jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp due_date = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.api.Invoice.prototype.getDueDate = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.api.Invoice.prototype.setDueDate = function(value) {\n jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.Invoice.prototype.clearDueDate = function() {\n this.setDueDate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.Invoice.prototype.hasDueDate = function() {\n return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional string receipt_pdf_url = 7;\n * @return {string}\n */\nproto.toit.api.Invoice.prototype.getReceiptPdfUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.Invoice.prototype.setReceiptPdfUrl = function(value) {\n jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * optional int64 amount_paid = 8;\n * @return {number}\n */\nproto.toit.api.Invoice.prototype.getAmountPaid = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.Invoice.prototype.setAmountPaid = function(value) {\n jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CancelPaymentSubscriptionRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CancelPaymentSubscriptionRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CancelPaymentSubscriptionRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CancelPaymentSubscriptionRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CancelPaymentSubscriptionRequest}\n */\nproto.toit.api.CancelPaymentSubscriptionRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CancelPaymentSubscriptionRequest;\n return proto.toit.api.CancelPaymentSubscriptionRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CancelPaymentSubscriptionRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CancelPaymentSubscriptionRequest}\n */\nproto.toit.api.CancelPaymentSubscriptionRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CancelPaymentSubscriptionRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CancelPaymentSubscriptionRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CancelPaymentSubscriptionRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CancelPaymentSubscriptionRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CancelPaymentSubscriptionResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CancelPaymentSubscriptionResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CancelPaymentSubscriptionResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CancelPaymentSubscriptionResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CancelPaymentSubscriptionResponse}\n */\nproto.toit.api.CancelPaymentSubscriptionResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CancelPaymentSubscriptionResponse;\n return proto.toit.api.CancelPaymentSubscriptionResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CancelPaymentSubscriptionResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CancelPaymentSubscriptionResponse}\n */\nproto.toit.api.CancelPaymentSubscriptionResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CancelPaymentSubscriptionResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CancelPaymentSubscriptionResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CancelPaymentSubscriptionResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CancelPaymentSubscriptionResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.api.UserChange.oneofGroups_ = [[1,2]];\n\n/**\n * @enum {number}\n */\nproto.toit.api.UserChange.ChangeCase = {\n CHANGE_NOT_SET: 0,\n SET_SETTINGS_WELCOME_CLOSED: 1,\n SET_SETTINGS_NEWSLETTER: 2\n};\n\n/**\n * @return {proto.toit.api.UserChange.ChangeCase}\n */\nproto.toit.api.UserChange.prototype.getChangeCase = function() {\n return /** @type {proto.toit.api.UserChange.ChangeCase} */(jspb.Message.computeOneofCase(this, proto.toit.api.UserChange.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.UserChange.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.UserChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.UserChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UserChange.toObject = function(includeInstance, msg) {\n var f, obj = {\n setSettingsWelcomeClosed: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n setSettingsNewsletter: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.UserChange}\n */\nproto.toit.api.UserChange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.UserChange;\n return proto.toit.api.UserChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.UserChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.UserChange}\n */\nproto.toit.api.UserChange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSetSettingsWelcomeClosed(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setSetSettingsNewsletter(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.UserChange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.UserChange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.UserChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UserChange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {boolean} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeBool(\n 1,\n f\n );\n }\n f = /** @type {boolean} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bool set_settings_welcome_closed = 1;\n * @return {boolean}\n */\nproto.toit.api.UserChange.prototype.getSetSettingsWelcomeClosed = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.api.UserChange.prototype.setSetSettingsWelcomeClosed = function(value) {\n jspb.Message.setOneofField(this, 1, proto.toit.api.UserChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.UserChange.prototype.clearSetSettingsWelcomeClosed = function() {\n jspb.Message.setOneofField(this, 1, proto.toit.api.UserChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.UserChange.prototype.hasSetSettingsWelcomeClosed = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool set_settings_newsletter = 2;\n * @return {boolean}\n */\nproto.toit.api.UserChange.prototype.getSetSettingsNewsletter = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.api.UserChange.prototype.setSetSettingsNewsletter = function(value) {\n jspb.Message.setOneofField(this, 2, proto.toit.api.UserChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.UserChange.prototype.clearSetSettingsNewsletter = function() {\n jspb.Message.setOneofField(this, 2, proto.toit.api.UserChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.UserChange.prototype.hasSetSettingsNewsletter = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.api.UpdateUserRequest.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.UpdateUserRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.UpdateUserRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.UpdateUserRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateUserRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n changesList: jspb.Message.toObjectList(msg.getChangesList(),\n proto.toit.api.UserChange.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.UpdateUserRequest}\n */\nproto.toit.api.UpdateUserRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.UpdateUserRequest;\n return proto.toit.api.UpdateUserRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.UpdateUserRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.UpdateUserRequest}\n */\nproto.toit.api.UpdateUserRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.api.UserChange;\n reader.readMessage(value,proto.toit.api.UserChange.deserializeBinaryFromReader);\n msg.addChanges(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.UpdateUserRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.UpdateUserRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.UpdateUserRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateUserRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getChangesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.toit.api.UserChange.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated UserChange changes = 1;\n * @return {!Array}\n */\nproto.toit.api.UpdateUserRequest.prototype.getChangesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.api.UserChange, 1));\n};\n\n\n/** @param {!Array} value */\nproto.toit.api.UpdateUserRequest.prototype.setChangesList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.toit.api.UserChange=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.api.UserChange}\n */\nproto.toit.api.UpdateUserRequest.prototype.addChanges = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.toit.api.UserChange, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.api.UpdateUserRequest.prototype.clearChangesList = function() {\n this.setChangesList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.UpdateUserResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.UpdateUserResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.UpdateUserResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateUserResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.UpdateUserResponse}\n */\nproto.toit.api.UpdateUserResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.UpdateUserResponse;\n return proto.toit.api.UpdateUserResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.UpdateUserResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.UpdateUserResponse}\n */\nproto.toit.api.UpdateUserResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.UpdateUserResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.UpdateUserResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.UpdateUserResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateUserResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\ngoog.object.extend(exports, proto.toit.api);\n","/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.toit.model.APIKey', null, global);\ngoog.exportSymbol('proto.toit.model.Customer', null, global);\ngoog.exportSymbol('proto.toit.model.Customer.Type', null, global);\ngoog.exportSymbol('proto.toit.model.Organization', null, global);\ngoog.exportSymbol('proto.toit.model.PaymentDetails', null, global);\ngoog.exportSymbol('proto.toit.model.Tier', null, global);\ngoog.exportSymbol('proto.toit.model.Tier.Type', null, global);\ngoog.exportSymbol('proto.toit.model.User', null, global);\ngoog.exportSymbol('proto.toit.model.User.Settings', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.Organization = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.Organization, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.Organization.displayName = 'proto.toit.model.Organization';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.PaymentDetails = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.PaymentDetails, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.PaymentDetails.displayName = 'proto.toit.model.PaymentDetails';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.User = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.User, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.User.displayName = 'proto.toit.model.User';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.User.Settings = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.User.Settings, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.User.Settings.displayName = 'proto.toit.model.User.Settings';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.APIKey = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.APIKey, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.APIKey.displayName = 'proto.toit.model.APIKey';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.Tier = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.Tier, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.Tier.displayName = 'proto.toit.model.Tier';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.Customer = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.Customer, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.Customer.displayName = 'proto.toit.model.Customer';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.Organization.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.Organization.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.Organization} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.Organization.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64(),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n defaultSdk: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n email: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n city: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n country: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n phoneNumber: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n cvrNumber: jspb.Message.getFieldWithDefault(msg, 8, \"\"),\n tier: jspb.Message.getFieldWithDefault(msg, 9, 0),\n paymentDetails: (f = msg.getPaymentDetails()) && proto.toit.model.PaymentDetails.toObject(includeInstance, f),\n addressLine: jspb.Message.getFieldWithDefault(msg, 11, \"\"),\n postalCode: jspb.Message.getFieldWithDefault(msg, 12, \"\"),\n vatNumber: jspb.Message.getFieldWithDefault(msg, 13, \"\"),\n vatCountryCode: jspb.Message.getFieldWithDefault(msg, 14, \"\"),\n customer: jspb.Message.getFieldWithDefault(msg, 15, 0),\n hwidQuota: jspb.Message.getFieldWithDefault(msg, 16, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.Organization}\n */\nproto.toit.model.Organization.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.Organization;\n return proto.toit.model.Organization.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.Organization} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.Organization}\n */\nproto.toit.model.Organization.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setDefaultSdk(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setCity(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setCountry(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setPhoneNumber(value);\n break;\n case 8:\n var value = /** @type {string} */ (reader.readString());\n msg.setCvrNumber(value);\n break;\n case 9:\n var value = /** @type {!proto.toit.model.Tier.Type} */ (reader.readEnum());\n msg.setTier(value);\n break;\n case 10:\n var value = new proto.toit.model.PaymentDetails;\n reader.readMessage(value,proto.toit.model.PaymentDetails.deserializeBinaryFromReader);\n msg.setPaymentDetails(value);\n break;\n case 11:\n var value = /** @type {string} */ (reader.readString());\n msg.setAddressLine(value);\n break;\n case 12:\n var value = /** @type {string} */ (reader.readString());\n msg.setPostalCode(value);\n break;\n case 13:\n var value = /** @type {string} */ (reader.readString());\n msg.setVatNumber(value);\n break;\n case 14:\n var value = /** @type {string} */ (reader.readString());\n msg.setVatCountryCode(value);\n break;\n case 15:\n var value = /** @type {!proto.toit.model.Customer.Type} */ (reader.readEnum());\n msg.setCustomer(value);\n break;\n case 16:\n var value = /** @type {number} */ (reader.readUint64());\n msg.setHwidQuota(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.Organization.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.Organization.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.Organization} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.Organization.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getDefaultSdk();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getCity();\n if (f.length > 0) {\n writer.writeString(\n 5,\n f\n );\n }\n f = message.getCountry();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n f = message.getPhoneNumber();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n f = message.getCvrNumber();\n if (f.length > 0) {\n writer.writeString(\n 8,\n f\n );\n }\n f = message.getTier();\n if (f !== 0.0) {\n writer.writeEnum(\n 9,\n f\n );\n }\n f = message.getPaymentDetails();\n if (f != null) {\n writer.writeMessage(\n 10,\n f,\n proto.toit.model.PaymentDetails.serializeBinaryToWriter\n );\n }\n f = message.getAddressLine();\n if (f.length > 0) {\n writer.writeString(\n 11,\n f\n );\n }\n f = message.getPostalCode();\n if (f.length > 0) {\n writer.writeString(\n 12,\n f\n );\n }\n f = message.getVatNumber();\n if (f.length > 0) {\n writer.writeString(\n 13,\n f\n );\n }\n f = message.getVatCountryCode();\n if (f.length > 0) {\n writer.writeString(\n 14,\n f\n );\n }\n f = message.getCustomer();\n if (f !== 0.0) {\n writer.writeEnum(\n 15,\n f\n );\n }\n f = message.getHwidQuota();\n if (f !== 0) {\n writer.writeUint64(\n 16,\n f\n );\n }\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.Organization.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.Organization.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.Organization.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string default_sdk = 3;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getDefaultSdk = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setDefaultSdk = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string email = 4;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string city = 5;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getCity = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setCity = function(value) {\n jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string country = 6;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getCountry = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setCountry = function(value) {\n jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string phone_number = 7;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getPhoneNumber = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setPhoneNumber = function(value) {\n jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * optional string cvr_number = 8;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getCvrNumber = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setCvrNumber = function(value) {\n jspb.Message.setProto3StringField(this, 8, value);\n};\n\n\n/**\n * optional Tier.Type tier = 9;\n * @return {!proto.toit.model.Tier.Type}\n */\nproto.toit.model.Organization.prototype.getTier = function() {\n return /** @type {!proto.toit.model.Tier.Type} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/** @param {!proto.toit.model.Tier.Type} value */\nproto.toit.model.Organization.prototype.setTier = function(value) {\n jspb.Message.setProto3EnumField(this, 9, value);\n};\n\n\n/**\n * optional PaymentDetails payment_details = 10;\n * @return {?proto.toit.model.PaymentDetails}\n */\nproto.toit.model.Organization.prototype.getPaymentDetails = function() {\n return /** @type{?proto.toit.model.PaymentDetails} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.PaymentDetails, 10));\n};\n\n\n/** @param {?proto.toit.model.PaymentDetails|undefined} value */\nproto.toit.model.Organization.prototype.setPaymentDetails = function(value) {\n jspb.Message.setWrapperField(this, 10, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.Organization.prototype.clearPaymentDetails = function() {\n this.setPaymentDetails(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.Organization.prototype.hasPaymentDetails = function() {\n return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional string address_line = 11;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getAddressLine = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 11, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setAddressLine = function(value) {\n jspb.Message.setProto3StringField(this, 11, value);\n};\n\n\n/**\n * optional string postal_code = 12;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getPostalCode = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 12, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setPostalCode = function(value) {\n jspb.Message.setProto3StringField(this, 12, value);\n};\n\n\n/**\n * optional string vat_number = 13;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getVatNumber = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 13, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setVatNumber = function(value) {\n jspb.Message.setProto3StringField(this, 13, value);\n};\n\n\n/**\n * optional string vat_country_code = 14;\n * @return {string}\n */\nproto.toit.model.Organization.prototype.getVatCountryCode = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.Organization.prototype.setVatCountryCode = function(value) {\n jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n/**\n * optional Customer.Type customer = 15;\n * @return {!proto.toit.model.Customer.Type}\n */\nproto.toit.model.Organization.prototype.getCustomer = function() {\n return /** @type {!proto.toit.model.Customer.Type} */ (jspb.Message.getFieldWithDefault(this, 15, 0));\n};\n\n\n/** @param {!proto.toit.model.Customer.Type} value */\nproto.toit.model.Organization.prototype.setCustomer = function(value) {\n jspb.Message.setProto3EnumField(this, 15, value);\n};\n\n\n/**\n * optional uint64 hwid_quota = 16;\n * @return {number}\n */\nproto.toit.model.Organization.prototype.getHwidQuota = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.Organization.prototype.setHwidQuota = function(value) {\n jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.PaymentDetails.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.PaymentDetails.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.PaymentDetails} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.PaymentDetails.toObject = function(includeInstance, msg) {\n var f, obj = {\n last4: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n expiry: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n expiryMonth: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n expiryYear: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n brand: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n countryCode: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n cvcCheck: jspb.Message.getFieldWithDefault(msg, 7, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.PaymentDetails}\n */\nproto.toit.model.PaymentDetails.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.PaymentDetails;\n return proto.toit.model.PaymentDetails.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.PaymentDetails} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.PaymentDetails}\n */\nproto.toit.model.PaymentDetails.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setLast4(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setExpiry(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setExpiryMonth(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setExpiryYear(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setBrand(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setCountryCode(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setCvcCheck(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.PaymentDetails.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.PaymentDetails.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.PaymentDetails} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.PaymentDetails.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLast4();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getExpiry();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getExpiryMonth();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getExpiryYear();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getBrand();\n if (f.length > 0) {\n writer.writeString(\n 5,\n f\n );\n }\n f = message.getCountryCode();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n f = message.getCvcCheck();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n};\n\n\n/**\n * optional string last4 = 1;\n * @return {string}\n */\nproto.toit.model.PaymentDetails.prototype.getLast4 = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.PaymentDetails.prototype.setLast4 = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string expiry = 2;\n * @return {string}\n */\nproto.toit.model.PaymentDetails.prototype.getExpiry = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.PaymentDetails.prototype.setExpiry = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional string expiry_month = 3;\n * @return {string}\n */\nproto.toit.model.PaymentDetails.prototype.getExpiryMonth = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.PaymentDetails.prototype.setExpiryMonth = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string expiry_year = 4;\n * @return {string}\n */\nproto.toit.model.PaymentDetails.prototype.getExpiryYear = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.PaymentDetails.prototype.setExpiryYear = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string brand = 5;\n * @return {string}\n */\nproto.toit.model.PaymentDetails.prototype.getBrand = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.PaymentDetails.prototype.setBrand = function(value) {\n jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional string country_code = 6;\n * @return {string}\n */\nproto.toit.model.PaymentDetails.prototype.getCountryCode = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.PaymentDetails.prototype.setCountryCode = function(value) {\n jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional string cvc_check = 7;\n * @return {string}\n */\nproto.toit.model.PaymentDetails.prototype.getCvcCheck = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.PaymentDetails.prototype.setCvcCheck = function(value) {\n jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.User.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.User.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.User} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.User.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64(),\n organizationId: msg.getOrganizationId_asB64(),\n email: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n settings: (f = msg.getSettings()) && proto.toit.model.User.Settings.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.User}\n */\nproto.toit.model.User.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.User;\n return proto.toit.model.User.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.User} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.User}\n */\nproto.toit.model.User.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 5:\n var value = new proto.toit.model.User.Settings;\n reader.readMessage(value,proto.toit.model.User.Settings.deserializeBinaryFromReader);\n msg.setSettings(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.User.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.User.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.User} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.User.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getSettings();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n proto.toit.model.User.Settings.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.User.Settings.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.User.Settings.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.User.Settings} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.User.Settings.toObject = function(includeInstance, msg) {\n var f, obj = {\n welcomeClosed: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n newsletter: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.User.Settings}\n */\nproto.toit.model.User.Settings.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.User.Settings;\n return proto.toit.model.User.Settings.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.User.Settings} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.User.Settings}\n */\nproto.toit.model.User.Settings.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setWelcomeClosed(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setNewsletter(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.User.Settings.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.User.Settings.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.User.Settings} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.User.Settings.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getWelcomeClosed();\n if (f) {\n writer.writeBool(\n 1,\n f\n );\n }\n f = message.getNewsletter();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bool welcome_closed = 1;\n * @return {boolean}\n */\nproto.toit.model.User.Settings.prototype.getWelcomeClosed = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.model.User.Settings.prototype.setWelcomeClosed = function(value) {\n jspb.Message.setProto3BooleanField(this, 1, value);\n};\n\n\n/**\n * optional bool newsletter = 2;\n * @return {boolean}\n */\nproto.toit.model.User.Settings.prototype.getNewsletter = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.model.User.Settings.prototype.setNewsletter = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.User.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.model.User.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.User.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.User.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.User.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.model.User.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.User.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.User.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional string email = 3;\n * @return {string}\n */\nproto.toit.model.User.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.User.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string name = 4;\n * @return {string}\n */\nproto.toit.model.User.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.User.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional Settings settings = 5;\n * @return {?proto.toit.model.User.Settings}\n */\nproto.toit.model.User.prototype.getSettings = function() {\n return /** @type{?proto.toit.model.User.Settings} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.User.Settings, 5));\n};\n\n\n/** @param {?proto.toit.model.User.Settings|undefined} value */\nproto.toit.model.User.prototype.setSettings = function(value) {\n jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.User.prototype.clearSettings = function() {\n this.setSettings(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.User.prototype.hasSettings = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.APIKey.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.APIKey.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.APIKey} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.APIKey.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64(),\n organizationId: msg.getOrganizationId_asB64(),\n name: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n createdAt: (f = msg.getCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.APIKey}\n */\nproto.toit.model.APIKey.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.APIKey;\n return proto.toit.model.APIKey.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.APIKey} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.APIKey}\n */\nproto.toit.model.APIKey.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 4:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setCreatedAt(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.APIKey.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.APIKey.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.APIKey} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.APIKey.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getCreatedAt();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.APIKey.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.model.APIKey.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.APIKey.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.APIKey.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.APIKey.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.model.APIKey.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.APIKey.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.APIKey.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional string name = 3;\n * @return {string}\n */\nproto.toit.model.APIKey.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.APIKey.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp created_at = 4;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.APIKey.prototype.getCreatedAt = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.APIKey.prototype.setCreatedAt = function(value) {\n jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.APIKey.prototype.clearCreatedAt = function() {\n this.setCreatedAt(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.APIKey.prototype.hasCreatedAt = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.Tier.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.Tier.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.Tier} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.Tier.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.Tier}\n */\nproto.toit.model.Tier.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.Tier;\n return proto.toit.model.Tier.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.Tier} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.Tier}\n */\nproto.toit.model.Tier.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.Tier.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.Tier.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.Tier} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.Tier.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.model.Tier.Type = {\n UNKNOWN: 0,\n FREE: 1,\n PAID: 2\n};\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.Customer.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.Customer.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.Customer} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.Customer.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.Customer}\n */\nproto.toit.model.Customer.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.Customer;\n return proto.toit.model.Customer.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.Customer} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.Customer}\n */\nproto.toit.model.Customer.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.Customer.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.Customer.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.Customer} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.Customer.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.model.Customer.Type = {\n UNKNOWN: 0,\n PERSON: 1,\n ORGANIZATION: 2\n};\n\ngoog.object.extend(exports, proto.toit.model);\n","/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar toit_model_organization_pb = require('../../toit/model/organization_pb.js');\ngoog.object.extend(proto, toit_model_organization_pb);\nvar toit_api_hardware_pb = require('../../toit/api/hardware_pb.js');\ngoog.object.extend(proto, toit_api_hardware_pb);\ngoog.exportSymbol('proto.toit.api.CreateAPIKeyRequest', null, global);\ngoog.exportSymbol('proto.toit.api.CreateAPIKeyResponse', null, global);\ngoog.exportSymbol('proto.toit.api.CreateNewOrganizationRequest', null, global);\ngoog.exportSymbol('proto.toit.api.CreateNewOrganizationResponse', null, global);\ngoog.exportSymbol('proto.toit.api.CreateUserRequest', null, global);\ngoog.exportSymbol('proto.toit.api.CreateUserResponse', null, global);\ngoog.exportSymbol('proto.toit.api.DeleteAPIKeyRequest', null, global);\ngoog.exportSymbol('proto.toit.api.DeleteAPIKeyResponse', null, global);\ngoog.exportSymbol('proto.toit.api.DeleteUserRequest', null, global);\ngoog.exportSymbol('proto.toit.api.DeleteUserResponse', null, global);\ngoog.exportSymbol('proto.toit.api.GetAPIKeySecretRequest', null, global);\ngoog.exportSymbol('proto.toit.api.GetAPIKeySecretResponse', null, global);\ngoog.exportSymbol('proto.toit.api.GetUserRequest', null, global);\ngoog.exportSymbol('proto.toit.api.GetUserResponse', null, global);\ngoog.exportSymbol('proto.toit.api.ListAPIKeysRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ListAPIKeysResponse', null, global);\ngoog.exportSymbol('proto.toit.api.ListUsersRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ListUsersResponse', null, global);\ngoog.exportSymbol('proto.toit.api.OrganizationChange', null, global);\ngoog.exportSymbol('proto.toit.api.UpdateOrganizationRequest', null, global);\ngoog.exportSymbol('proto.toit.api.UpdateOrganizationResponse', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListUsersRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ListUsersRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListUsersRequest.displayName = 'proto.toit.api.ListUsersRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListUsersResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.api.ListUsersResponse.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.api.ListUsersResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListUsersResponse.displayName = 'proto.toit.api.ListUsersResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateUserRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateUserRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateUserRequest.displayName = 'proto.toit.api.CreateUserRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateUserResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateUserResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateUserResponse.displayName = 'proto.toit.api.CreateUserResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.DeleteUserRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.DeleteUserRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.DeleteUserRequest.displayName = 'proto.toit.api.DeleteUserRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.DeleteUserResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.DeleteUserResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.DeleteUserResponse.displayName = 'proto.toit.api.DeleteUserResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetUserRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetUserRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetUserRequest.displayName = 'proto.toit.api.GetUserRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetUserResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetUserResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetUserResponse.displayName = 'proto.toit.api.GetUserResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateAPIKeyRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateAPIKeyRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateAPIKeyRequest.displayName = 'proto.toit.api.CreateAPIKeyRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateAPIKeyResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateAPIKeyResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateAPIKeyResponse.displayName = 'proto.toit.api.CreateAPIKeyResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListAPIKeysRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ListAPIKeysRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListAPIKeysRequest.displayName = 'proto.toit.api.ListAPIKeysRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ListAPIKeysResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ListAPIKeysResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ListAPIKeysResponse.displayName = 'proto.toit.api.ListAPIKeysResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.DeleteAPIKeyRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.DeleteAPIKeyRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.DeleteAPIKeyRequest.displayName = 'proto.toit.api.DeleteAPIKeyRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.DeleteAPIKeyResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.DeleteAPIKeyResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.DeleteAPIKeyResponse.displayName = 'proto.toit.api.DeleteAPIKeyResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetAPIKeySecretRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetAPIKeySecretRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetAPIKeySecretRequest.displayName = 'proto.toit.api.GetAPIKeySecretRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetAPIKeySecretResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetAPIKeySecretResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetAPIKeySecretResponse.displayName = 'proto.toit.api.GetAPIKeySecretResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.OrganizationChange = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.api.OrganizationChange.oneofGroups_);\n};\ngoog.inherits(proto.toit.api.OrganizationChange, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.OrganizationChange.displayName = 'proto.toit.api.OrganizationChange';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.UpdateOrganizationRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.api.UpdateOrganizationRequest.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.api.UpdateOrganizationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.UpdateOrganizationRequest.displayName = 'proto.toit.api.UpdateOrganizationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.UpdateOrganizationResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.UpdateOrganizationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.UpdateOrganizationResponse.displayName = 'proto.toit.api.UpdateOrganizationResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateNewOrganizationRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateNewOrganizationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateNewOrganizationRequest.displayName = 'proto.toit.api.CreateNewOrganizationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateNewOrganizationResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateNewOrganizationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateNewOrganizationResponse.displayName = 'proto.toit.api.CreateNewOrganizationResponse';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListUsersRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListUsersRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListUsersRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListUsersRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n offset: msg.getOffset_asB64(),\n limit: jspb.Message.getFieldWithDefault(msg, 2, 0),\n orderBy: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n orderDesc: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListUsersRequest}\n */\nproto.toit.api.ListUsersRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListUsersRequest;\n return proto.toit.api.ListUsersRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListUsersRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListUsersRequest}\n */\nproto.toit.api.ListUsersRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOffset(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLimit(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setOrderBy(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setOrderDesc(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListUsersRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListUsersRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListUsersRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListUsersRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOffset_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getLimit();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getOrderBy();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getOrderDesc();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes offset = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListUsersRequest.prototype.getOffset = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes offset = 1;\n * This is a type-conversion wrapper around `getOffset()`\n * @return {string}\n */\nproto.toit.api.ListUsersRequest.prototype.getOffset_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOffset()));\n};\n\n\n/**\n * optional bytes offset = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOffset()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListUsersRequest.prototype.getOffset_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOffset()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListUsersRequest.prototype.setOffset = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 limit = 2;\n * @return {number}\n */\nproto.toit.api.ListUsersRequest.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.ListUsersRequest.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string order_by = 3;\n * @return {string}\n */\nproto.toit.api.ListUsersRequest.prototype.getOrderBy = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ListUsersRequest.prototype.setOrderBy = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bool order_desc = 4;\n * @return {boolean}\n */\nproto.toit.api.ListUsersRequest.prototype.getOrderDesc = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.api.ListUsersRequest.prototype.setOrderDesc = function(value) {\n jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.api.ListUsersResponse.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListUsersResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListUsersResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListUsersResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListUsersResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n usersList: jspb.Message.toObjectList(msg.getUsersList(),\n toit_model_organization_pb.User.toObject, includeInstance),\n offset: msg.getOffset_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListUsersResponse}\n */\nproto.toit.api.ListUsersResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListUsersResponse;\n return proto.toit.api.ListUsersResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListUsersResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListUsersResponse}\n */\nproto.toit.api.ListUsersResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.User;\n reader.readMessage(value,toit_model_organization_pb.User.deserializeBinaryFromReader);\n msg.addUsers(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOffset(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListUsersResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListUsersResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListUsersResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListUsersResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUsersList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n toit_model_organization_pb.User.serializeBinaryToWriter\n );\n }\n f = message.getOffset_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * repeated toit.model.User users = 1;\n * @return {!Array}\n */\nproto.toit.api.ListUsersResponse.prototype.getUsersList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, toit_model_organization_pb.User, 1));\n};\n\n\n/** @param {!Array} value */\nproto.toit.api.ListUsersResponse.prototype.setUsersList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.toit.model.User=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.User}\n */\nproto.toit.api.ListUsersResponse.prototype.addUsers = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.toit.model.User, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.api.ListUsersResponse.prototype.clearUsersList = function() {\n this.setUsersList([]);\n};\n\n\n/**\n * optional bytes offset = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListUsersResponse.prototype.getOffset = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes offset = 2;\n * This is a type-conversion wrapper around `getOffset()`\n * @return {string}\n */\nproto.toit.api.ListUsersResponse.prototype.getOffset_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOffset()));\n};\n\n\n/**\n * optional bytes offset = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOffset()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListUsersResponse.prototype.getOffset_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOffset()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListUsersResponse.prototype.setOffset = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateUserRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateUserRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateUserRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateUserRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n email: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateUserRequest}\n */\nproto.toit.api.CreateUserRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateUserRequest;\n return proto.toit.api.CreateUserRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateUserRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateUserRequest}\n */\nproto.toit.api.CreateUserRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateUserRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateUserRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateUserRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateUserRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string email = 1;\n * @return {string}\n */\nproto.toit.api.CreateUserRequest.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateUserRequest.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateUserResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateUserResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateUserResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateUserResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n user: (f = msg.getUser()) && toit_model_organization_pb.User.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateUserResponse}\n */\nproto.toit.api.CreateUserResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateUserResponse;\n return proto.toit.api.CreateUserResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateUserResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateUserResponse}\n */\nproto.toit.api.CreateUserResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.User;\n reader.readMessage(value,toit_model_organization_pb.User.deserializeBinaryFromReader);\n msg.setUser(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateUserResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateUserResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateUserResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateUserResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUser();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_organization_pb.User.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional toit.model.User user = 1;\n * @return {?proto.toit.model.User}\n */\nproto.toit.api.CreateUserResponse.prototype.getUser = function() {\n return /** @type{?proto.toit.model.User} */ (\n jspb.Message.getWrapperField(this, toit_model_organization_pb.User, 1));\n};\n\n\n/** @param {?proto.toit.model.User|undefined} value */\nproto.toit.api.CreateUserResponse.prototype.setUser = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.CreateUserResponse.prototype.clearUser = function() {\n this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.CreateUserResponse.prototype.hasUser = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.DeleteUserRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.DeleteUserRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.DeleteUserRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteUserRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n email: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.DeleteUserRequest}\n */\nproto.toit.api.DeleteUserRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.DeleteUserRequest;\n return proto.toit.api.DeleteUserRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.DeleteUserRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.DeleteUserRequest}\n */\nproto.toit.api.DeleteUserRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.DeleteUserRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.DeleteUserRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.DeleteUserRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteUserRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string email = 1;\n * @return {string}\n */\nproto.toit.api.DeleteUserRequest.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.DeleteUserRequest.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.DeleteUserResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.DeleteUserResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.DeleteUserResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteUserResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.DeleteUserResponse}\n */\nproto.toit.api.DeleteUserResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.DeleteUserResponse;\n return proto.toit.api.DeleteUserResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.DeleteUserResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.DeleteUserResponse}\n */\nproto.toit.api.DeleteUserResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.DeleteUserResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.DeleteUserResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.DeleteUserResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteUserResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetUserRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetUserRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetUserRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetUserRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64(),\n email: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetUserRequest}\n */\nproto.toit.api.GetUserRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetUserRequest;\n return proto.toit.api.GetUserRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetUserRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetUserRequest}\n */\nproto.toit.api.GetUserRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetUserRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetUserRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetUserRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetUserRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.GetUserRequest.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.api.GetUserRequest.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.GetUserRequest.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.GetUserRequest.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional string email = 2;\n * @return {string}\n */\nproto.toit.api.GetUserRequest.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.GetUserRequest.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetUserResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetUserResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetUserResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetUserResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n user: (f = msg.getUser()) && toit_model_organization_pb.User.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetUserResponse}\n */\nproto.toit.api.GetUserResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetUserResponse;\n return proto.toit.api.GetUserResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetUserResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetUserResponse}\n */\nproto.toit.api.GetUserResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.User;\n reader.readMessage(value,toit_model_organization_pb.User.deserializeBinaryFromReader);\n msg.setUser(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetUserResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetUserResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetUserResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetUserResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUser();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_organization_pb.User.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional toit.model.User user = 1;\n * @return {?proto.toit.model.User}\n */\nproto.toit.api.GetUserResponse.prototype.getUser = function() {\n return /** @type{?proto.toit.model.User} */ (\n jspb.Message.getWrapperField(this, toit_model_organization_pb.User, 1));\n};\n\n\n/** @param {?proto.toit.model.User|undefined} value */\nproto.toit.api.GetUserResponse.prototype.setUser = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.GetUserResponse.prototype.clearUser = function() {\n this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.GetUserResponse.prototype.hasUser = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateAPIKeyRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateAPIKeyRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateAPIKeyRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateAPIKeyRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateAPIKeyRequest}\n */\nproto.toit.api.CreateAPIKeyRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateAPIKeyRequest;\n return proto.toit.api.CreateAPIKeyRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateAPIKeyRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateAPIKeyRequest}\n */\nproto.toit.api.CreateAPIKeyRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateAPIKeyRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateAPIKeyRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateAPIKeyRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateAPIKeyRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.toit.api.CreateAPIKeyRequest.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateAPIKeyRequest.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateAPIKeyResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateAPIKeyResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateAPIKeyResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateAPIKeyResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n apiKey: (f = msg.getApiKey()) && toit_model_organization_pb.APIKey.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateAPIKeyResponse}\n */\nproto.toit.api.CreateAPIKeyResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateAPIKeyResponse;\n return proto.toit.api.CreateAPIKeyResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateAPIKeyResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateAPIKeyResponse}\n */\nproto.toit.api.CreateAPIKeyResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.APIKey;\n reader.readMessage(value,toit_model_organization_pb.APIKey.deserializeBinaryFromReader);\n msg.setApiKey(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateAPIKeyResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateAPIKeyResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateAPIKeyResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateAPIKeyResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getApiKey();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_organization_pb.APIKey.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional toit.model.APIKey api_key = 1;\n * @return {?proto.toit.model.APIKey}\n */\nproto.toit.api.CreateAPIKeyResponse.prototype.getApiKey = function() {\n return /** @type{?proto.toit.model.APIKey} */ (\n jspb.Message.getWrapperField(this, toit_model_organization_pb.APIKey, 1));\n};\n\n\n/** @param {?proto.toit.model.APIKey|undefined} value */\nproto.toit.api.CreateAPIKeyResponse.prototype.setApiKey = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.CreateAPIKeyResponse.prototype.clearApiKey = function() {\n this.setApiKey(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.CreateAPIKeyResponse.prototype.hasApiKey = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListAPIKeysRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListAPIKeysRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListAPIKeysRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n offset: msg.getOffset_asB64(),\n limit: jspb.Message.getFieldWithDefault(msg, 2, 0),\n orderBy: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n orderDesc: jspb.Message.getBooleanFieldWithDefault(msg, 4, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListAPIKeysRequest}\n */\nproto.toit.api.ListAPIKeysRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListAPIKeysRequest;\n return proto.toit.api.ListAPIKeysRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListAPIKeysRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListAPIKeysRequest}\n */\nproto.toit.api.ListAPIKeysRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOffset(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLimit(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setOrderBy(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setOrderDesc(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListAPIKeysRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListAPIKeysRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListAPIKeysRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOffset_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getLimit();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getOrderBy();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getOrderDesc();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes offset = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.getOffset = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes offset = 1;\n * This is a type-conversion wrapper around `getOffset()`\n * @return {string}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.getOffset_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOffset()));\n};\n\n\n/**\n * optional bytes offset = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOffset()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.getOffset_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOffset()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListAPIKeysRequest.prototype.setOffset = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 limit = 2;\n * @return {number}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.ListAPIKeysRequest.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string order_by = 3;\n * @return {string}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.getOrderBy = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ListAPIKeysRequest.prototype.setOrderBy = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bool order_desc = 4;\n * @return {boolean}\n */\nproto.toit.api.ListAPIKeysRequest.prototype.getOrderDesc = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.api.ListAPIKeysRequest.prototype.setOrderDesc = function(value) {\n jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ListAPIKeysResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ListAPIKeysResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ListAPIKeysResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListAPIKeysResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n apiKey: (f = msg.getApiKey()) && toit_model_organization_pb.APIKey.toObject(includeInstance, f),\n offset: msg.getOffset_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ListAPIKeysResponse}\n */\nproto.toit.api.ListAPIKeysResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ListAPIKeysResponse;\n return proto.toit.api.ListAPIKeysResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ListAPIKeysResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ListAPIKeysResponse}\n */\nproto.toit.api.ListAPIKeysResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_organization_pb.APIKey;\n reader.readMessage(value,toit_model_organization_pb.APIKey.deserializeBinaryFromReader);\n msg.setApiKey(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOffset(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ListAPIKeysResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ListAPIKeysResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ListAPIKeysResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ListAPIKeysResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getApiKey();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_organization_pb.APIKey.serializeBinaryToWriter\n );\n }\n f = message.getOffset_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional toit.model.APIKey api_key = 1;\n * @return {?proto.toit.model.APIKey}\n */\nproto.toit.api.ListAPIKeysResponse.prototype.getApiKey = function() {\n return /** @type{?proto.toit.model.APIKey} */ (\n jspb.Message.getWrapperField(this, toit_model_organization_pb.APIKey, 1));\n};\n\n\n/** @param {?proto.toit.model.APIKey|undefined} value */\nproto.toit.api.ListAPIKeysResponse.prototype.setApiKey = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.ListAPIKeysResponse.prototype.clearApiKey = function() {\n this.setApiKey(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.ListAPIKeysResponse.prototype.hasApiKey = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bytes offset = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ListAPIKeysResponse.prototype.getOffset = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes offset = 2;\n * This is a type-conversion wrapper around `getOffset()`\n * @return {string}\n */\nproto.toit.api.ListAPIKeysResponse.prototype.getOffset_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOffset()));\n};\n\n\n/**\n * optional bytes offset = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOffset()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ListAPIKeysResponse.prototype.getOffset_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOffset()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ListAPIKeysResponse.prototype.setOffset = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.DeleteAPIKeyRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.DeleteAPIKeyRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.DeleteAPIKeyRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteAPIKeyRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.DeleteAPIKeyRequest}\n */\nproto.toit.api.DeleteAPIKeyRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.DeleteAPIKeyRequest;\n return proto.toit.api.DeleteAPIKeyRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.DeleteAPIKeyRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.DeleteAPIKeyRequest}\n */\nproto.toit.api.DeleteAPIKeyRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.DeleteAPIKeyRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.DeleteAPIKeyRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.DeleteAPIKeyRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteAPIKeyRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.DeleteAPIKeyRequest.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.api.DeleteAPIKeyRequest.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.DeleteAPIKeyRequest.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.DeleteAPIKeyRequest.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.DeleteAPIKeyResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.DeleteAPIKeyResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.DeleteAPIKeyResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteAPIKeyResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.DeleteAPIKeyResponse}\n */\nproto.toit.api.DeleteAPIKeyResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.DeleteAPIKeyResponse;\n return proto.toit.api.DeleteAPIKeyResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.DeleteAPIKeyResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.DeleteAPIKeyResponse}\n */\nproto.toit.api.DeleteAPIKeyResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.DeleteAPIKeyResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.DeleteAPIKeyResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.DeleteAPIKeyResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.DeleteAPIKeyResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetAPIKeySecretRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetAPIKeySecretRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetAPIKeySecretRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetAPIKeySecretRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetAPIKeySecretRequest}\n */\nproto.toit.api.GetAPIKeySecretRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetAPIKeySecretRequest;\n return proto.toit.api.GetAPIKeySecretRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetAPIKeySecretRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetAPIKeySecretRequest}\n */\nproto.toit.api.GetAPIKeySecretRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetAPIKeySecretRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetAPIKeySecretRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetAPIKeySecretRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetAPIKeySecretRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.GetAPIKeySecretRequest.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.api.GetAPIKeySecretRequest.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.GetAPIKeySecretRequest.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.GetAPIKeySecretRequest.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetAPIKeySecretResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetAPIKeySecretResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetAPIKeySecretResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetAPIKeySecretResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n secret: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetAPIKeySecretResponse}\n */\nproto.toit.api.GetAPIKeySecretResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetAPIKeySecretResponse;\n return proto.toit.api.GetAPIKeySecretResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetAPIKeySecretResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetAPIKeySecretResponse}\n */\nproto.toit.api.GetAPIKeySecretResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setSecret(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetAPIKeySecretResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetAPIKeySecretResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetAPIKeySecretResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetAPIKeySecretResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getSecret();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string secret = 1;\n * @return {string}\n */\nproto.toit.api.GetAPIKeySecretResponse.prototype.getSecret = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.GetAPIKeySecretResponse.prototype.setSecret = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.api.OrganizationChange.oneofGroups_ = [[1,2,3,4,5,6,7,8,9,10,11]];\n\n/**\n * @enum {number}\n */\nproto.toit.api.OrganizationChange.ChangeCase = {\n CHANGE_NOT_SET: 0,\n CITY: 1,\n COUNTRY: 2,\n PHONE_NUMBER: 3,\n CVR_NUMBER: 4,\n NAME: 5,\n EMAIL: 6,\n VAT_NUMBER: 7,\n VAT_COUNTRY_CODE: 8,\n ADDRESS_LINE: 9,\n POSTAL_CODE: 10,\n CUSTOMER: 11\n};\n\n/**\n * @return {proto.toit.api.OrganizationChange.ChangeCase}\n */\nproto.toit.api.OrganizationChange.prototype.getChangeCase = function() {\n return /** @type {proto.toit.api.OrganizationChange.ChangeCase} */(jspb.Message.computeOneofCase(this, proto.toit.api.OrganizationChange.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.OrganizationChange.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.OrganizationChange.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.OrganizationChange} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.OrganizationChange.toObject = function(includeInstance, msg) {\n var f, obj = {\n city: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n country: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n phoneNumber: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n cvrNumber: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n email: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n vatNumber: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n vatCountryCode: jspb.Message.getFieldWithDefault(msg, 8, \"\"),\n addressLine: jspb.Message.getFieldWithDefault(msg, 9, \"\"),\n postalCode: jspb.Message.getFieldWithDefault(msg, 10, \"\"),\n customer: jspb.Message.getFieldWithDefault(msg, 11, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.OrganizationChange}\n */\nproto.toit.api.OrganizationChange.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.OrganizationChange;\n return proto.toit.api.OrganizationChange.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.OrganizationChange} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.OrganizationChange}\n */\nproto.toit.api.OrganizationChange.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setCity(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCountry(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setPhoneNumber(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setCvrNumber(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setVatNumber(value);\n break;\n case 8:\n var value = /** @type {string} */ (reader.readString());\n msg.setVatCountryCode(value);\n break;\n case 9:\n var value = /** @type {string} */ (reader.readString());\n msg.setAddressLine(value);\n break;\n case 10:\n var value = /** @type {string} */ (reader.readString());\n msg.setPostalCode(value);\n break;\n case 11:\n var value = /** @type {!proto.toit.model.Customer.Type} */ (reader.readEnum());\n msg.setCustomer(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.OrganizationChange.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.OrganizationChange.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.OrganizationChange} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.OrganizationChange.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeString(\n 2,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeString(\n 3,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 4));\n if (f != null) {\n writer.writeString(\n 4,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 5));\n if (f != null) {\n writer.writeString(\n 5,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 6));\n if (f != null) {\n writer.writeString(\n 6,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 7));\n if (f != null) {\n writer.writeString(\n 7,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 8));\n if (f != null) {\n writer.writeString(\n 8,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 9));\n if (f != null) {\n writer.writeString(\n 9,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 10));\n if (f != null) {\n writer.writeString(\n 10,\n f\n );\n }\n f = /** @type {!proto.toit.model.Customer.Type} */ (jspb.Message.getField(message, 11));\n if (f != null) {\n writer.writeEnum(\n 11,\n f\n );\n }\n};\n\n\n/**\n * optional string city = 1;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getCity = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setCity = function(value) {\n jspb.Message.setOneofField(this, 1, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearCity = function() {\n jspb.Message.setOneofField(this, 1, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasCity = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional string country = 2;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getCountry = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setCountry = function(value) {\n jspb.Message.setOneofField(this, 2, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearCountry = function() {\n jspb.Message.setOneofField(this, 2, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasCountry = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string phone_number = 3;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getPhoneNumber = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setPhoneNumber = function(value) {\n jspb.Message.setOneofField(this, 3, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearPhoneNumber = function() {\n jspb.Message.setOneofField(this, 3, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasPhoneNumber = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional string cvr_number = 4;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getCvrNumber = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setCvrNumber = function(value) {\n jspb.Message.setOneofField(this, 4, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearCvrNumber = function() {\n jspb.Message.setOneofField(this, 4, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasCvrNumber = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional string name = 5;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setName = function(value) {\n jspb.Message.setOneofField(this, 5, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearName = function() {\n jspb.Message.setOneofField(this, 5, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasName = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional string email = 6;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setEmail = function(value) {\n jspb.Message.setOneofField(this, 6, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearEmail = function() {\n jspb.Message.setOneofField(this, 6, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasEmail = function() {\n return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional string vat_number = 7;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getVatNumber = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setVatNumber = function(value) {\n jspb.Message.setOneofField(this, 7, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearVatNumber = function() {\n jspb.Message.setOneofField(this, 7, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasVatNumber = function() {\n return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * optional string vat_country_code = 8;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getVatCountryCode = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setVatCountryCode = function(value) {\n jspb.Message.setOneofField(this, 8, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearVatCountryCode = function() {\n jspb.Message.setOneofField(this, 8, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasVatCountryCode = function() {\n return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional string address_line = 9;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getAddressLine = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setAddressLine = function(value) {\n jspb.Message.setOneofField(this, 9, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearAddressLine = function() {\n jspb.Message.setOneofField(this, 9, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasAddressLine = function() {\n return jspb.Message.getField(this, 9) != null;\n};\n\n\n/**\n * optional string postal_code = 10;\n * @return {string}\n */\nproto.toit.api.OrganizationChange.prototype.getPostalCode = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.OrganizationChange.prototype.setPostalCode = function(value) {\n jspb.Message.setOneofField(this, 10, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearPostalCode = function() {\n jspb.Message.setOneofField(this, 10, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasPostalCode = function() {\n return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional toit.model.Customer.Type customer = 11;\n * @return {!proto.toit.model.Customer.Type}\n */\nproto.toit.api.OrganizationChange.prototype.getCustomer = function() {\n return /** @type {!proto.toit.model.Customer.Type} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/** @param {!proto.toit.model.Customer.Type} value */\nproto.toit.api.OrganizationChange.prototype.setCustomer = function(value) {\n jspb.Message.setOneofField(this, 11, proto.toit.api.OrganizationChange.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.OrganizationChange.prototype.clearCustomer = function() {\n jspb.Message.setOneofField(this, 11, proto.toit.api.OrganizationChange.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.OrganizationChange.prototype.hasCustomer = function() {\n return jspb.Message.getField(this, 11) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.api.UpdateOrganizationRequest.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.UpdateOrganizationRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.UpdateOrganizationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.UpdateOrganizationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateOrganizationRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n changesList: jspb.Message.toObjectList(msg.getChangesList(),\n proto.toit.api.OrganizationChange.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.UpdateOrganizationRequest}\n */\nproto.toit.api.UpdateOrganizationRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.UpdateOrganizationRequest;\n return proto.toit.api.UpdateOrganizationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.UpdateOrganizationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.UpdateOrganizationRequest}\n */\nproto.toit.api.UpdateOrganizationRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.api.OrganizationChange;\n reader.readMessage(value,proto.toit.api.OrganizationChange.deserializeBinaryFromReader);\n msg.addChanges(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.UpdateOrganizationRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.UpdateOrganizationRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.UpdateOrganizationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateOrganizationRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getChangesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.toit.api.OrganizationChange.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated OrganizationChange changes = 1;\n * @return {!Array}\n */\nproto.toit.api.UpdateOrganizationRequest.prototype.getChangesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.api.OrganizationChange, 1));\n};\n\n\n/** @param {!Array} value */\nproto.toit.api.UpdateOrganizationRequest.prototype.setChangesList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.toit.api.OrganizationChange=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.api.OrganizationChange}\n */\nproto.toit.api.UpdateOrganizationRequest.prototype.addChanges = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.toit.api.OrganizationChange, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.api.UpdateOrganizationRequest.prototype.clearChangesList = function() {\n this.setChangesList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.UpdateOrganizationResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.UpdateOrganizationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.UpdateOrganizationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateOrganizationResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.UpdateOrganizationResponse}\n */\nproto.toit.api.UpdateOrganizationResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.UpdateOrganizationResponse;\n return proto.toit.api.UpdateOrganizationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.UpdateOrganizationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.UpdateOrganizationResponse}\n */\nproto.toit.api.UpdateOrganizationResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.UpdateOrganizationResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.UpdateOrganizationResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.UpdateOrganizationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.UpdateOrganizationResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateNewOrganizationRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateNewOrganizationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateNewOrganizationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateNewOrganizationRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n email: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateNewOrganizationRequest}\n */\nproto.toit.api.CreateNewOrganizationRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateNewOrganizationRequest;\n return proto.toit.api.CreateNewOrganizationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateNewOrganizationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateNewOrganizationRequest}\n */\nproto.toit.api.CreateNewOrganizationRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateNewOrganizationRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateNewOrganizationRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateNewOrganizationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateNewOrganizationRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.toit.api.CreateNewOrganizationRequest.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateNewOrganizationRequest.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string email = 2;\n * @return {string}\n */\nproto.toit.api.CreateNewOrganizationRequest.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateNewOrganizationRequest.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateNewOrganizationResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateNewOrganizationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateNewOrganizationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateNewOrganizationResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateNewOrganizationResponse}\n */\nproto.toit.api.CreateNewOrganizationResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateNewOrganizationResponse;\n return proto.toit.api.CreateNewOrganizationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateNewOrganizationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateNewOrganizationResponse}\n */\nproto.toit.api.CreateNewOrganizationResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateNewOrganizationResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateNewOrganizationResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateNewOrganizationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateNewOrganizationResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.CreateNewOrganizationResponse.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.CreateNewOrganizationResponse.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateNewOrganizationResponse.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.CreateNewOrganizationResponse.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\ngoog.object.extend(exports, proto.toit.api);\n","/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar google_protobuf_struct_pb = require('google-protobuf/google/protobuf/struct_pb.js');\ngoog.object.extend(proto, google_protobuf_struct_pb);\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.toit.model.CounterMetricData', null, global);\ngoog.exportSymbol('proto.toit.model.GuageMetricData', null, global);\ngoog.exportSymbol('proto.toit.model.HistogramMetricData', null, global);\ngoog.exportSymbol('proto.toit.model.LogData', null, global);\ngoog.exportSymbol('proto.toit.model.LogData.Level', null, global);\ngoog.exportSymbol('proto.toit.model.LogData.Type', null, global);\ngoog.exportSymbol('proto.toit.model.MetricsData', null, global);\ngoog.exportSymbol('proto.toit.model.MetricsData.Level', null, global);\ngoog.exportSymbol('proto.toit.model.PlotMetricData', null, global);\ngoog.exportSymbol('proto.toit.model.TopicData', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.MetricsData = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.model.MetricsData.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.model.MetricsData, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.MetricsData.displayName = 'proto.toit.model.MetricsData';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.GuageMetricData = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.GuageMetricData, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.GuageMetricData.displayName = 'proto.toit.model.GuageMetricData';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.CounterMetricData = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.CounterMetricData, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.CounterMetricData.displayName = 'proto.toit.model.CounterMetricData';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.PlotMetricData = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.PlotMetricData, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.PlotMetricData.displayName = 'proto.toit.model.PlotMetricData';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.HistogramMetricData = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.HistogramMetricData, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.HistogramMetricData.displayName = 'proto.toit.model.HistogramMetricData';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.TopicData = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.TopicData, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.TopicData.displayName = 'proto.toit.model.TopicData';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.LogData = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.model.LogData.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.model.LogData, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.LogData.displayName = 'proto.toit.model.LogData';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.model.MetricsData.repeatedFields_ = [1,2,3,4,5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.MetricsData.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.MetricsData.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.MetricsData} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.MetricsData.toObject = function(includeInstance, msg) {\n var f, obj = {\n namesList: msg.getNamesList_asB64(),\n gaugesList: jspb.Message.toObjectList(msg.getGaugesList(),\n proto.toit.model.GuageMetricData.toObject, includeInstance),\n countersList: jspb.Message.toObjectList(msg.getCountersList(),\n proto.toit.model.CounterMetricData.toObject, includeInstance),\n plotsList: jspb.Message.toObjectList(msg.getPlotsList(),\n proto.toit.model.PlotMetricData.toObject, includeInstance),\n histogramsList: jspb.Message.toObjectList(msg.getHistogramsList(),\n proto.toit.model.HistogramMetricData.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.MetricsData}\n */\nproto.toit.model.MetricsData.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.MetricsData;\n return proto.toit.model.MetricsData.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.MetricsData} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.MetricsData}\n */\nproto.toit.model.MetricsData.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.addNames(value);\n break;\n case 2:\n var value = new proto.toit.model.GuageMetricData;\n reader.readMessage(value,proto.toit.model.GuageMetricData.deserializeBinaryFromReader);\n msg.addGauges(value);\n break;\n case 3:\n var value = new proto.toit.model.CounterMetricData;\n reader.readMessage(value,proto.toit.model.CounterMetricData.deserializeBinaryFromReader);\n msg.addCounters(value);\n break;\n case 4:\n var value = new proto.toit.model.PlotMetricData;\n reader.readMessage(value,proto.toit.model.PlotMetricData.deserializeBinaryFromReader);\n msg.addPlots(value);\n break;\n case 5:\n var value = new proto.toit.model.HistogramMetricData;\n reader.readMessage(value,proto.toit.model.HistogramMetricData.deserializeBinaryFromReader);\n msg.addHistograms(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.MetricsData.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.MetricsData.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.MetricsData} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.MetricsData.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNamesList_asU8();\n if (f.length > 0) {\n writer.writeRepeatedBytes(\n 1,\n f\n );\n }\n f = message.getGaugesList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n proto.toit.model.GuageMetricData.serializeBinaryToWriter\n );\n }\n f = message.getCountersList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n proto.toit.model.CounterMetricData.serializeBinaryToWriter\n );\n }\n f = message.getPlotsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 4,\n f,\n proto.toit.model.PlotMetricData.serializeBinaryToWriter\n );\n }\n f = message.getHistogramsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 5,\n f,\n proto.toit.model.HistogramMetricData.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.model.MetricsData.Level = {\n DEBUG_LEVEL: 0,\n INFO_LEVEL: 5,\n CRITICAL_LEVEL: 10\n};\n\n/**\n * repeated bytes names = 1;\n * @return {!(Array|Array)}\n */\nproto.toit.model.MetricsData.prototype.getNamesList = function() {\n return /** @type {!(Array|Array)} */ (jspb.Message.getRepeatedField(this, 1));\n};\n\n\n/**\n * repeated bytes names = 1;\n * This is a type-conversion wrapper around `getNamesList()`\n * @return {!Array}\n */\nproto.toit.model.MetricsData.prototype.getNamesList_asB64 = function() {\n return /** @type {!Array} */ (jspb.Message.bytesListAsB64(\n this.getNamesList()));\n};\n\n\n/**\n * repeated bytes names = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getNamesList()`\n * @return {!Array}\n */\nproto.toit.model.MetricsData.prototype.getNamesList_asU8 = function() {\n return /** @type {!Array} */ (jspb.Message.bytesListAsU8(\n this.getNamesList()));\n};\n\n\n/** @param {!(Array|Array)} value */\nproto.toit.model.MetricsData.prototype.setNamesList = function(value) {\n jspb.Message.setField(this, 1, value || []);\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @param {number=} opt_index\n */\nproto.toit.model.MetricsData.prototype.addNames = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 1, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.MetricsData.prototype.clearNamesList = function() {\n this.setNamesList([]);\n};\n\n\n/**\n * repeated GuageMetricData gauges = 2;\n * @return {!Array}\n */\nproto.toit.model.MetricsData.prototype.getGaugesList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.model.GuageMetricData, 2));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.MetricsData.prototype.setGaugesList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.toit.model.GuageMetricData=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.GuageMetricData}\n */\nproto.toit.model.MetricsData.prototype.addGauges = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.toit.model.GuageMetricData, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.MetricsData.prototype.clearGaugesList = function() {\n this.setGaugesList([]);\n};\n\n\n/**\n * repeated CounterMetricData counters = 3;\n * @return {!Array}\n */\nproto.toit.model.MetricsData.prototype.getCountersList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.model.CounterMetricData, 3));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.MetricsData.prototype.setCountersList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.toit.model.CounterMetricData=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.CounterMetricData}\n */\nproto.toit.model.MetricsData.prototype.addCounters = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.toit.model.CounterMetricData, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.MetricsData.prototype.clearCountersList = function() {\n this.setCountersList([]);\n};\n\n\n/**\n * repeated PlotMetricData plots = 4;\n * @return {!Array}\n */\nproto.toit.model.MetricsData.prototype.getPlotsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.model.PlotMetricData, 4));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.MetricsData.prototype.setPlotsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 4, value);\n};\n\n\n/**\n * @param {!proto.toit.model.PlotMetricData=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.PlotMetricData}\n */\nproto.toit.model.MetricsData.prototype.addPlots = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 4, opt_value, proto.toit.model.PlotMetricData, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.MetricsData.prototype.clearPlotsList = function() {\n this.setPlotsList([]);\n};\n\n\n/**\n * repeated HistogramMetricData histograms = 5;\n * @return {!Array}\n */\nproto.toit.model.MetricsData.prototype.getHistogramsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.model.HistogramMetricData, 5));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.MetricsData.prototype.setHistogramsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 5, value);\n};\n\n\n/**\n * @param {!proto.toit.model.HistogramMetricData=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.HistogramMetricData}\n */\nproto.toit.model.MetricsData.prototype.addHistograms = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 5, opt_value, proto.toit.model.HistogramMetricData, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.MetricsData.prototype.clearHistogramsList = function() {\n this.setHistogramsList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.GuageMetricData.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.GuageMetricData.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.GuageMetricData} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.GuageMetricData.toObject = function(includeInstance, msg) {\n var f, obj = {\n value: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n nameIndex: jspb.Message.getFieldWithDefault(msg, 2, 0),\n created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, undefined) : [],\n level: jspb.Message.getFieldWithDefault(msg, 5, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.GuageMetricData}\n */\nproto.toit.model.GuageMetricData.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.GuageMetricData;\n return proto.toit.model.GuageMetricData.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.GuageMetricData} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.GuageMetricData}\n */\nproto.toit.model.GuageMetricData.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setValue(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setNameIndex(value);\n break;\n case 3:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setCreated(value);\n break;\n case 4:\n var value = msg.getTagsMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint32, jspb.BinaryReader.prototype.readUint32, null, 0);\n });\n break;\n case 5:\n var value = /** @type {!proto.toit.model.MetricsData.Level} */ (reader.readEnum());\n msg.setLevel(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.GuageMetricData.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.GuageMetricData.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.GuageMetricData} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.GuageMetricData.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getValue();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getNameIndex();\n if (f !== 0) {\n writer.writeUint32(\n 2,\n f\n );\n }\n f = message.getCreated();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getTagsMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeUint32, jspb.BinaryWriter.prototype.writeUint32);\n }\n f = message.getLevel();\n if (f !== 0.0) {\n writer.writeEnum(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional double value = 1;\n * @return {number}\n */\nproto.toit.model.GuageMetricData.prototype.getValue = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.GuageMetricData.prototype.setValue = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional uint32 name_index = 2;\n * @return {number}\n */\nproto.toit.model.GuageMetricData.prototype.getNameIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.GuageMetricData.prototype.setNameIndex = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp created = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.GuageMetricData.prototype.getCreated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.GuageMetricData.prototype.setCreated = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.GuageMetricData.prototype.clearCreated = function() {\n this.setCreated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.GuageMetricData.prototype.hasCreated = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * map tags = 4;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nproto.toit.model.GuageMetricData.prototype.getTagsMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 4, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n */\nproto.toit.model.GuageMetricData.prototype.clearTagsMap = function() {\n this.getTagsMap().clear();\n};\n\n\n/**\n * optional MetricsData.Level level = 5;\n * @return {!proto.toit.model.MetricsData.Level}\n */\nproto.toit.model.GuageMetricData.prototype.getLevel = function() {\n return /** @type {!proto.toit.model.MetricsData.Level} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/** @param {!proto.toit.model.MetricsData.Level} value */\nproto.toit.model.GuageMetricData.prototype.setLevel = function(value) {\n jspb.Message.setProto3EnumField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.CounterMetricData.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.CounterMetricData.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.CounterMetricData} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.CounterMetricData.toObject = function(includeInstance, msg) {\n var f, obj = {\n nameIndex: jspb.Message.getFieldWithDefault(msg, 1, 0),\n count: jspb.Message.getFieldWithDefault(msg, 2, 0),\n mean: jspb.Message.getFloatingPointFieldWithDefault(msg, 3, 0.0),\n stdev: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0),\n tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, undefined) : [],\n level: jspb.Message.getFieldWithDefault(msg, 6, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.CounterMetricData}\n */\nproto.toit.model.CounterMetricData.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.CounterMetricData;\n return proto.toit.model.CounterMetricData.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.CounterMetricData} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.CounterMetricData}\n */\nproto.toit.model.CounterMetricData.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setNameIndex(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setCount(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setMean(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setStdev(value);\n break;\n case 5:\n var value = msg.getTagsMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint32, jspb.BinaryReader.prototype.readUint32, null, 0);\n });\n break;\n case 6:\n var value = /** @type {!proto.toit.model.MetricsData.Level} */ (reader.readEnum());\n msg.setLevel(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.CounterMetricData.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.CounterMetricData.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.CounterMetricData} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.CounterMetricData.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNameIndex();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = message.getCount();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getMean();\n if (f !== 0.0) {\n writer.writeDouble(\n 3,\n f\n );\n }\n f = message.getStdev();\n if (f !== 0.0) {\n writer.writeDouble(\n 4,\n f\n );\n }\n f = message.getTagsMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(5, writer, jspb.BinaryWriter.prototype.writeUint32, jspb.BinaryWriter.prototype.writeUint32);\n }\n f = message.getLevel();\n if (f !== 0.0) {\n writer.writeEnum(\n 6,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 name_index = 1;\n * @return {number}\n */\nproto.toit.model.CounterMetricData.prototype.getNameIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.CounterMetricData.prototype.setNameIndex = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 count = 2;\n * @return {number}\n */\nproto.toit.model.CounterMetricData.prototype.getCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.CounterMetricData.prototype.setCount = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional double mean = 3;\n * @return {number}\n */\nproto.toit.model.CounterMetricData.prototype.getMean = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.CounterMetricData.prototype.setMean = function(value) {\n jspb.Message.setProto3FloatField(this, 3, value);\n};\n\n\n/**\n * optional double stdev = 4;\n * @return {number}\n */\nproto.toit.model.CounterMetricData.prototype.getStdev = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 4, 0.0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.CounterMetricData.prototype.setStdev = function(value) {\n jspb.Message.setProto3FloatField(this, 4, value);\n};\n\n\n/**\n * map tags = 5;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nproto.toit.model.CounterMetricData.prototype.getTagsMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 5, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n */\nproto.toit.model.CounterMetricData.prototype.clearTagsMap = function() {\n this.getTagsMap().clear();\n};\n\n\n/**\n * optional MetricsData.Level level = 6;\n * @return {!proto.toit.model.MetricsData.Level}\n */\nproto.toit.model.CounterMetricData.prototype.getLevel = function() {\n return /** @type {!proto.toit.model.MetricsData.Level} */ (jspb.Message.getFieldWithDefault(this, 6, 0));\n};\n\n\n/** @param {!proto.toit.model.MetricsData.Level} value */\nproto.toit.model.CounterMetricData.prototype.setLevel = function(value) {\n jspb.Message.setProto3EnumField(this, 6, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.PlotMetricData.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.PlotMetricData.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.PlotMetricData} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.PlotMetricData.toObject = function(includeInstance, msg) {\n var f, obj = {\n value: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n nameIndex: jspb.Message.getFieldWithDefault(msg, 2, 0),\n created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, undefined) : []\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.PlotMetricData}\n */\nproto.toit.model.PlotMetricData.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.PlotMetricData;\n return proto.toit.model.PlotMetricData.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.PlotMetricData} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.PlotMetricData}\n */\nproto.toit.model.PlotMetricData.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setValue(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setNameIndex(value);\n break;\n case 3:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setCreated(value);\n break;\n case 4:\n var value = msg.getTagsMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint32, jspb.BinaryReader.prototype.readUint32, null, 0);\n });\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.PlotMetricData.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.PlotMetricData.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.PlotMetricData} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.PlotMetricData.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getValue();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getNameIndex();\n if (f !== 0) {\n writer.writeUint32(\n 2,\n f\n );\n }\n f = message.getCreated();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getTagsMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(4, writer, jspb.BinaryWriter.prototype.writeUint32, jspb.BinaryWriter.prototype.writeUint32);\n }\n};\n\n\n/**\n * optional double value = 1;\n * @return {number}\n */\nproto.toit.model.PlotMetricData.prototype.getValue = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.PlotMetricData.prototype.setValue = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional uint32 name_index = 2;\n * @return {number}\n */\nproto.toit.model.PlotMetricData.prototype.getNameIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.PlotMetricData.prototype.setNameIndex = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp created = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.PlotMetricData.prototype.getCreated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.PlotMetricData.prototype.setCreated = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.PlotMetricData.prototype.clearCreated = function() {\n this.setCreated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.PlotMetricData.prototype.hasCreated = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * map tags = 4;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nproto.toit.model.PlotMetricData.prototype.getTagsMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 4, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n */\nproto.toit.model.PlotMetricData.prototype.clearTagsMap = function() {\n this.getTagsMap().clear();\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.HistogramMetricData.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.HistogramMetricData.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.HistogramMetricData} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HistogramMetricData.toObject = function(includeInstance, msg) {\n var f, obj = {\n nameIndex: jspb.Message.getFieldWithDefault(msg, 1, 0),\n valuesMap: (f = msg.getValuesMap()) ? f.toObject(includeInstance, undefined) : [],\n tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, undefined) : [],\n level: jspb.Message.getFieldWithDefault(msg, 4, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.HistogramMetricData}\n */\nproto.toit.model.HistogramMetricData.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.HistogramMetricData;\n return proto.toit.model.HistogramMetricData.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.HistogramMetricData} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.HistogramMetricData}\n */\nproto.toit.model.HistogramMetricData.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setNameIndex(value);\n break;\n case 2:\n var value = msg.getValuesMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint32, jspb.BinaryReader.prototype.readDouble, null, 0);\n });\n break;\n case 3:\n var value = msg.getTagsMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readUint32, jspb.BinaryReader.prototype.readUint32, null, 0);\n });\n break;\n case 4:\n var value = /** @type {!proto.toit.model.MetricsData.Level} */ (reader.readEnum());\n msg.setLevel(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.HistogramMetricData.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.HistogramMetricData.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.HistogramMetricData} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HistogramMetricData.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNameIndex();\n if (f !== 0) {\n writer.writeUint32(\n 1,\n f\n );\n }\n f = message.getValuesMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(2, writer, jspb.BinaryWriter.prototype.writeUint32, jspb.BinaryWriter.prototype.writeDouble);\n }\n f = message.getTagsMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(3, writer, jspb.BinaryWriter.prototype.writeUint32, jspb.BinaryWriter.prototype.writeUint32);\n }\n f = message.getLevel();\n if (f !== 0.0) {\n writer.writeEnum(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional uint32 name_index = 1;\n * @return {number}\n */\nproto.toit.model.HistogramMetricData.prototype.getNameIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.HistogramMetricData.prototype.setNameIndex = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * map values = 2;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nproto.toit.model.HistogramMetricData.prototype.getValuesMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 2, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n */\nproto.toit.model.HistogramMetricData.prototype.clearValuesMap = function() {\n this.getValuesMap().clear();\n};\n\n\n/**\n * map tags = 3;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nproto.toit.model.HistogramMetricData.prototype.getTagsMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 3, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n */\nproto.toit.model.HistogramMetricData.prototype.clearTagsMap = function() {\n this.getTagsMap().clear();\n};\n\n\n/**\n * optional MetricsData.Level level = 4;\n * @return {!proto.toit.model.MetricsData.Level}\n */\nproto.toit.model.HistogramMetricData.prototype.getLevel = function() {\n return /** @type {!proto.toit.model.MetricsData.Level} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/** @param {!proto.toit.model.MetricsData.Level} value */\nproto.toit.model.HistogramMetricData.prototype.setLevel = function(value) {\n jspb.Message.setProto3EnumField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.TopicData.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.TopicData.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.TopicData} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.TopicData.toObject = function(includeInstance, msg) {\n var f, obj = {\n topic: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n data: msg.getData_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.TopicData}\n */\nproto.toit.model.TopicData.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.TopicData;\n return proto.toit.model.TopicData.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.TopicData} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.TopicData}\n */\nproto.toit.model.TopicData.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setTopic(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.TopicData.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.TopicData.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.TopicData} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.TopicData.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTopic();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string topic = 1;\n * @return {string}\n */\nproto.toit.model.TopicData.prototype.getTopic = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.TopicData.prototype.setTopic = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bytes data = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.TopicData.prototype.getData = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes data = 2;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nproto.toit.model.TopicData.prototype.getData_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getData()));\n};\n\n\n/**\n * optional bytes data = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nproto.toit.model.TopicData.prototype.getData_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getData()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.TopicData.prototype.setData = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.model.LogData.repeatedFields_ = [5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.LogData.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.LogData.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.LogData} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.LogData.toObject = function(includeInstance, msg) {\n var f, obj = {\n type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n data: msg.getData_asB64(),\n message: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n level: jspb.Message.getFieldWithDefault(msg, 4, 0),\n namesList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f,\n tagsMap: (f = msg.getTagsMap()) ? f.toObject(includeInstance, proto.google.protobuf.Value.toObject) : []\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.LogData}\n */\nproto.toit.model.LogData.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.LogData;\n return proto.toit.model.LogData.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.LogData} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.LogData}\n */\nproto.toit.model.LogData.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!proto.toit.model.LogData.Type} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setMessage(value);\n break;\n case 4:\n var value = /** @type {!proto.toit.model.LogData.Level} */ (reader.readEnum());\n msg.setLevel(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.addNames(value);\n break;\n case 6:\n var value = msg.getTagsMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readMessage, proto.google.protobuf.Value.deserializeBinaryFromReader, \"\");\n });\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.LogData.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.LogData.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.LogData} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.LogData.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getMessage();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getLevel();\n if (f !== 0.0) {\n writer.writeEnum(\n 4,\n f\n );\n }\n f = message.getNamesList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 5,\n f\n );\n }\n f = message.getTagsMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(6, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeMessage, proto.google.protobuf.Value.serializeBinaryToWriter);\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.model.LogData.Type = {\n UNKNOWN: 0,\n PRINT: 1,\n PROCESS_START: 2,\n PROCESS_STOP: 3,\n STACK_TRACE: 4,\n BOOT: 5,\n SHUTDOWN: 6\n};\n\n/**\n * @enum {number}\n */\nproto.toit.model.LogData.Level = {\n PRINT_LEVEL: 0,\n DEBUG_LEVEL: 1,\n INFO_LEVEL: 2,\n WARN_LEVEL: 3,\n ERROR_LEVEL: 4,\n FATAL_LEVEL: 5\n};\n\n/**\n * optional Type type = 1;\n * @return {!proto.toit.model.LogData.Type}\n */\nproto.toit.model.LogData.prototype.getType = function() {\n return /** @type {!proto.toit.model.LogData.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {!proto.toit.model.LogData.Type} value */\nproto.toit.model.LogData.prototype.setType = function(value) {\n jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional bytes data = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.LogData.prototype.getData = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes data = 2;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nproto.toit.model.LogData.prototype.getData_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getData()));\n};\n\n\n/**\n * optional bytes data = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nproto.toit.model.LogData.prototype.getData_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getData()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.LogData.prototype.setData = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional string message = 3;\n * @return {string}\n */\nproto.toit.model.LogData.prototype.getMessage = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.LogData.prototype.setMessage = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional Level level = 4;\n * @return {!proto.toit.model.LogData.Level}\n */\nproto.toit.model.LogData.prototype.getLevel = function() {\n return /** @type {!proto.toit.model.LogData.Level} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/** @param {!proto.toit.model.LogData.Level} value */\nproto.toit.model.LogData.prototype.setLevel = function(value) {\n jspb.Message.setProto3EnumField(this, 4, value);\n};\n\n\n/**\n * repeated string names = 5;\n * @return {!Array}\n */\nproto.toit.model.LogData.prototype.getNamesList = function() {\n return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 5));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.LogData.prototype.setNamesList = function(value) {\n jspb.Message.setField(this, 5, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n */\nproto.toit.model.LogData.prototype.addNames = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 5, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.LogData.prototype.clearNamesList = function() {\n this.setNamesList([]);\n};\n\n\n/**\n * map tags = 6;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nproto.toit.model.LogData.prototype.getTagsMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 6, opt_noLazyCreate,\n proto.google.protobuf.Value));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n */\nproto.toit.model.LogData.prototype.clearTagsMap = function() {\n this.getTagsMap().clear();\n};\n\n\ngoog.object.extend(exports, proto.toit.model);\n","// package: toit.api\n// file: toit/api/auth.proto\n\nvar toit_api_auth_pb = require(\"../../toit/api/auth_pb\");\nvar grpc = require(\"@improbable-eng/grpc-web\").grpc;\n\nvar Auth = (function () {\n function Auth() {}\n Auth.serviceName = \"toit.api.Auth\";\n return Auth;\n}());\n\nAuth.Login = {\n methodName: \"Login\",\n service: Auth,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_auth_pb.LoginRequest,\n responseType: toit_api_auth_pb.AuthResponse\n};\n\nAuth.Refresh = {\n methodName: \"Refresh\",\n service: Auth,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_auth_pb.RefreshRequest,\n responseType: toit_api_auth_pb.AuthResponse\n};\n\nAuth.ChangeOrganization = {\n methodName: \"ChangeOrganization\",\n service: Auth,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_auth_pb.ChangeOrganizationRequest,\n responseType: toit_api_auth_pb.AuthResponse\n};\n\nAuth.Logout = {\n methodName: \"Logout\",\n service: Auth,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_auth_pb.LogoutRequest,\n responseType: toit_api_auth_pb.LogoutResponse\n};\n\nAuth.CreateOrganization = {\n methodName: \"CreateOrganization\",\n service: Auth,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_auth_pb.CreateOrganizationRequest,\n responseType: toit_api_auth_pb.CreateOrganizationResponse\n};\n\nexports.Auth = Auth;\n\nfunction AuthClient(serviceHost, options) {\n this.serviceHost = serviceHost;\n this.options = options || {};\n}\n\nAuthClient.prototype.login = function login(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Auth.Login, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nAuthClient.prototype.refresh = function refresh(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Auth.Refresh, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nAuthClient.prototype.changeOrganization = function changeOrganization(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Auth.ChangeOrganization, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nAuthClient.prototype.logout = function logout(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Auth.Logout, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nAuthClient.prototype.createOrganization = function createOrganization(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(Auth.CreateOrganization, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nexports.AuthClient = AuthClient;\n\n","// package: toit.api\n// file: toit/api/user.proto\n\nvar toit_api_user_pb = require(\"../../toit/api/user_pb\");\nvar toit_api_organization_pb = require(\"../../toit/api/organization_pb\");\nvar grpc = require(\"@improbable-eng/grpc-web\").grpc;\n\nvar User = (function () {\n function User() {}\n User.serviceName = \"toit.api.User\";\n return User;\n}());\n\nUser.SetPassword = {\n methodName: \"SetPassword\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.SetPasswordRequest,\n responseType: toit_api_user_pb.SetPasswordResponse\n};\n\nUser.InitiateResetPassword = {\n methodName: \"InitiateResetPassword\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.InitiateResetPasswordRequest,\n responseType: toit_api_user_pb.InitiateResetPasswordResponse\n};\n\nUser.ChangePasswordWithRPToken = {\n methodName: \"ChangePasswordWithRPToken\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.ChangePasswordWithRPTokenRequest,\n responseType: toit_api_user_pb.ChangePasswordWithRPTokenResponse\n};\n\nUser.GetCurrentUser = {\n methodName: \"GetCurrentUser\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.GetCurrentUserRequest,\n responseType: toit_api_user_pb.GetCurrentUserResponse\n};\n\nUser.ListOrganizations = {\n methodName: \"ListOrganizations\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.ListOrganizationsRequest,\n responseType: toit_api_user_pb.ListOrganizationsResponse\n};\n\nUser.GetOrganization = {\n methodName: \"GetOrganization\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.GetOrganizationRequest,\n responseType: toit_api_user_pb.GetOrganizationResponse\n};\n\nUser.ListUsers = {\n methodName: \"ListUsers\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_organization_pb.ListUsersRequest,\n responseType: toit_api_organization_pb.ListUsersResponse\n};\n\nUser.CreateUser = {\n methodName: \"CreateUser\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_organization_pb.CreateUserRequest,\n responseType: toit_api_organization_pb.CreateUserResponse\n};\n\nUser.CreatePaymentSubscription = {\n methodName: \"CreatePaymentSubscription\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.CreatePaymentSubscriptionRequest,\n responseType: toit_api_user_pb.CreatePaymentSubscriptionResponse\n};\n\nUser.ListPaymentInvoices = {\n methodName: \"ListPaymentInvoices\",\n service: User,\n requestStream: false,\n responseStream: true,\n requestType: toit_api_user_pb.ListPaymentInvoicesRequest,\n responseType: toit_api_user_pb.ListPaymentInvoicesResponse\n};\n\nUser.CancelPaymentSubscription = {\n methodName: \"CancelPaymentSubscription\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.CancelPaymentSubscriptionRequest,\n responseType: toit_api_user_pb.CancelPaymentSubscriptionResponse\n};\n\nUser.UpdateUser = {\n methodName: \"UpdateUser\",\n service: User,\n requestStream: false,\n responseStream: false,\n requestType: toit_api_user_pb.UpdateUserRequest,\n responseType: toit_api_user_pb.UpdateUserResponse\n};\n\nexports.User = User;\n\nfunction UserClient(serviceHost, options) {\n this.serviceHost = serviceHost;\n this.options = options || {};\n}\n\nUserClient.prototype.setPassword = function setPassword(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.SetPassword, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.initiateResetPassword = function initiateResetPassword(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.InitiateResetPassword, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.changePasswordWithRPToken = function changePasswordWithRPToken(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.ChangePasswordWithRPToken, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.getCurrentUser = function getCurrentUser(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.GetCurrentUser, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.listOrganizations = function listOrganizations(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.ListOrganizations, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.getOrganization = function getOrganization(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.GetOrganization, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.listUsers = function listUsers(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.ListUsers, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.createUser = function createUser(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.CreateUser, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.createPaymentSubscription = function createPaymentSubscription(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.CreatePaymentSubscription, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.listPaymentInvoices = function listPaymentInvoices(requestMessage, metadata) {\n var listeners = {\n data: [],\n end: [],\n status: []\n };\n var client = grpc.invoke(User.ListPaymentInvoices, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onMessage: function (responseMessage) {\n listeners.data.forEach(function (handler) {\n handler(responseMessage);\n });\n },\n onEnd: function (status, statusMessage, trailers) {\n listeners.status.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners.end.forEach(function (handler) {\n handler({ code: status, details: statusMessage, metadata: trailers });\n });\n listeners = null;\n }\n });\n return {\n on: function (type, handler) {\n listeners[type].push(handler);\n return this;\n },\n cancel: function () {\n listeners = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.cancelPaymentSubscription = function cancelPaymentSubscription(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.CancelPaymentSubscription, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nUserClient.prototype.updateUser = function updateUser(requestMessage, metadata, callback) {\n if (arguments.length === 2) {\n callback = arguments[1];\n }\n var client = grpc.unary(User.UpdateUser, {\n request: requestMessage,\n host: this.serviceHost,\n metadata: metadata,\n transport: this.options.transport,\n debug: this.options.debug,\n onEnd: function (response) {\n if (callback) {\n if (response.status !== grpc.Code.OK) {\n var err = new Error(response.statusMessage);\n err.code = response.status;\n err.metadata = response.trailers;\n callback(err, null);\n } else {\n callback(null, response.message);\n }\n }\n }\n });\n return {\n cancel: function () {\n callback = null;\n client.close();\n }\n };\n};\n\nexports.UserClient = UserClient;\n\n","/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar google_protobuf_duration_pb = require('google-protobuf/google/protobuf/duration_pb.js');\ngoog.object.extend(proto, google_protobuf_duration_pb);\ngoog.exportSymbol('proto.toit.api.AuthResponse', null, global);\ngoog.exportSymbol('proto.toit.api.ChangeOrganizationRequest', null, global);\ngoog.exportSymbol('proto.toit.api.CreateOrganizationRequest', null, global);\ngoog.exportSymbol('proto.toit.api.CreateOrganizationRequest.Organization', null, global);\ngoog.exportSymbol('proto.toit.api.CreateOrganizationRequest.User', null, global);\ngoog.exportSymbol('proto.toit.api.CreateOrganizationResponse', null, global);\ngoog.exportSymbol('proto.toit.api.LoginRequest', null, global);\ngoog.exportSymbol('proto.toit.api.LogoutRequest', null, global);\ngoog.exportSymbol('proto.toit.api.LogoutResponse', null, global);\ngoog.exportSymbol('proto.toit.api.RefreshRequest', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.LoginRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.LoginRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.LoginRequest.displayName = 'proto.toit.api.LoginRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.RefreshRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.RefreshRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.RefreshRequest.displayName = 'proto.toit.api.RefreshRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.AuthResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.AuthResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.AuthResponse.displayName = 'proto.toit.api.AuthResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.LogoutRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.LogoutRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.LogoutRequest.displayName = 'proto.toit.api.LogoutRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.LogoutResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.LogoutResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.LogoutResponse.displayName = 'proto.toit.api.LogoutResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ChangeOrganizationRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ChangeOrganizationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ChangeOrganizationRequest.displayName = 'proto.toit.api.ChangeOrganizationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateOrganizationRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateOrganizationRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateOrganizationRequest.displayName = 'proto.toit.api.CreateOrganizationRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateOrganizationRequest.Organization = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateOrganizationRequest.Organization, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateOrganizationRequest.Organization.displayName = 'proto.toit.api.CreateOrganizationRequest.Organization';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateOrganizationRequest.User = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateOrganizationRequest.User, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateOrganizationRequest.User.displayName = 'proto.toit.api.CreateOrganizationRequest.User';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.CreateOrganizationResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.CreateOrganizationResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.CreateOrganizationResponse.displayName = 'proto.toit.api.CreateOrganizationResponse';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.LoginRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.LoginRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.LoginRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.LoginRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n username: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n password: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n remember: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.LoginRequest}\n */\nproto.toit.api.LoginRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.LoginRequest;\n return proto.toit.api.LoginRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.LoginRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.LoginRequest}\n */\nproto.toit.api.LoginRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setUsername(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setPassword(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setRemember(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.LoginRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.LoginRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.LoginRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.LoginRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUsername();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getPassword();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getRemember();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional string username = 1;\n * @return {string}\n */\nproto.toit.api.LoginRequest.prototype.getUsername = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.LoginRequest.prototype.setUsername = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string password = 2;\n * @return {string}\n */\nproto.toit.api.LoginRequest.prototype.getPassword = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.LoginRequest.prototype.setPassword = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional bool remember = 3;\n * @return {boolean}\n */\nproto.toit.api.LoginRequest.prototype.getRemember = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.api.LoginRequest.prototype.setRemember = function(value) {\n jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.LoginRequest.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.LoginRequest.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.LoginRequest.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.LoginRequest.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.RefreshRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.RefreshRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.RefreshRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.RefreshRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n refreshToken: msg.getRefreshToken_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.RefreshRequest}\n */\nproto.toit.api.RefreshRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.RefreshRequest;\n return proto.toit.api.RefreshRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.RefreshRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.RefreshRequest}\n */\nproto.toit.api.RefreshRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRefreshToken(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.RefreshRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.RefreshRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.RefreshRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.RefreshRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getRefreshToken_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes refresh_token = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.RefreshRequest.prototype.getRefreshToken = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes refresh_token = 1;\n * This is a type-conversion wrapper around `getRefreshToken()`\n * @return {string}\n */\nproto.toit.api.RefreshRequest.prototype.getRefreshToken_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getRefreshToken()));\n};\n\n\n/**\n * optional bytes refresh_token = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRefreshToken()`\n * @return {!Uint8Array}\n */\nproto.toit.api.RefreshRequest.prototype.getRefreshToken_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getRefreshToken()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.RefreshRequest.prototype.setRefreshToken = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.AuthResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.AuthResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.AuthResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.AuthResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n accessToken: msg.getAccessToken_asB64(),\n tokenType: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n expiresIn: (f = msg.getExpiresIn()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f),\n refreshToken: msg.getRefreshToken_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.AuthResponse}\n */\nproto.toit.api.AuthResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.AuthResponse;\n return proto.toit.api.AuthResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.AuthResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.AuthResponse}\n */\nproto.toit.api.AuthResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setAccessToken(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setTokenType(value);\n break;\n case 3:\n var value = new google_protobuf_duration_pb.Duration;\n reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);\n msg.setExpiresIn(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRefreshToken(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.AuthResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.AuthResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.AuthResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.AuthResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getAccessToken_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getTokenType();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getExpiresIn();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_duration_pb.Duration.serializeBinaryToWriter\n );\n }\n f = message.getRefreshToken_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes access_token = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.AuthResponse.prototype.getAccessToken = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes access_token = 1;\n * This is a type-conversion wrapper around `getAccessToken()`\n * @return {string}\n */\nproto.toit.api.AuthResponse.prototype.getAccessToken_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getAccessToken()));\n};\n\n\n/**\n * optional bytes access_token = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getAccessToken()`\n * @return {!Uint8Array}\n */\nproto.toit.api.AuthResponse.prototype.getAccessToken_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getAccessToken()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.AuthResponse.prototype.setAccessToken = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional string token_type = 2;\n * @return {string}\n */\nproto.toit.api.AuthResponse.prototype.getTokenType = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.AuthResponse.prototype.setTokenType = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Duration expires_in = 3;\n * @return {?proto.google.protobuf.Duration}\n */\nproto.toit.api.AuthResponse.prototype.getExpiresIn = function() {\n return /** @type{?proto.google.protobuf.Duration} */ (\n jspb.Message.getWrapperField(this, google_protobuf_duration_pb.Duration, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Duration|undefined} value */\nproto.toit.api.AuthResponse.prototype.setExpiresIn = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.AuthResponse.prototype.clearExpiresIn = function() {\n this.setExpiresIn(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.AuthResponse.prototype.hasExpiresIn = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional bytes refresh_token = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.AuthResponse.prototype.getRefreshToken = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes refresh_token = 4;\n * This is a type-conversion wrapper around `getRefreshToken()`\n * @return {string}\n */\nproto.toit.api.AuthResponse.prototype.getRefreshToken_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getRefreshToken()));\n};\n\n\n/**\n * optional bytes refresh_token = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRefreshToken()`\n * @return {!Uint8Array}\n */\nproto.toit.api.AuthResponse.prototype.getRefreshToken_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getRefreshToken()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.AuthResponse.prototype.setRefreshToken = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.LogoutRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.LogoutRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.LogoutRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.LogoutRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.LogoutRequest}\n */\nproto.toit.api.LogoutRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.LogoutRequest;\n return proto.toit.api.LogoutRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.LogoutRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.LogoutRequest}\n */\nproto.toit.api.LogoutRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.LogoutRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.LogoutRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.LogoutRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.LogoutRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.LogoutResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.LogoutResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.LogoutResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.LogoutResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.LogoutResponse}\n */\nproto.toit.api.LogoutResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.LogoutResponse;\n return proto.toit.api.LogoutResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.LogoutResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.LogoutResponse}\n */\nproto.toit.api.LogoutResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.LogoutResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.LogoutResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.LogoutResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.LogoutResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ChangeOrganizationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ChangeOrganizationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ChangeOrganizationRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n organizationId: msg.getOrganizationId_asB64(),\n refreshToken: msg.getRefreshToken_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ChangeOrganizationRequest}\n */\nproto.toit.api.ChangeOrganizationRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ChangeOrganizationRequest;\n return proto.toit.api.ChangeOrganizationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ChangeOrganizationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ChangeOrganizationRequest}\n */\nproto.toit.api.ChangeOrganizationRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setRefreshToken(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ChangeOrganizationRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ChangeOrganizationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ChangeOrganizationRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getRefreshToken_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ChangeOrganizationRequest.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes refresh_token = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.getRefreshToken = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes refresh_token = 2;\n * This is a type-conversion wrapper around `getRefreshToken()`\n * @return {string}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.getRefreshToken_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getRefreshToken()));\n};\n\n\n/**\n * optional bytes refresh_token = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getRefreshToken()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ChangeOrganizationRequest.prototype.getRefreshToken_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getRefreshToken()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ChangeOrganizationRequest.prototype.setRefreshToken = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateOrganizationRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateOrganizationRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateOrganizationRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n organization: (f = msg.getOrganization()) && proto.toit.api.CreateOrganizationRequest.Organization.toObject(includeInstance, f),\n user: (f = msg.getUser()) && proto.toit.api.CreateOrganizationRequest.User.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateOrganizationRequest}\n */\nproto.toit.api.CreateOrganizationRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateOrganizationRequest;\n return proto.toit.api.CreateOrganizationRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateOrganizationRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateOrganizationRequest}\n */\nproto.toit.api.CreateOrganizationRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.api.CreateOrganizationRequest.Organization;\n reader.readMessage(value,proto.toit.api.CreateOrganizationRequest.Organization.deserializeBinaryFromReader);\n msg.setOrganization(value);\n break;\n case 2:\n var value = new proto.toit.api.CreateOrganizationRequest.User;\n reader.readMessage(value,proto.toit.api.CreateOrganizationRequest.User.deserializeBinaryFromReader);\n msg.setUser(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateOrganizationRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateOrganizationRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateOrganizationRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOrganization();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.api.CreateOrganizationRequest.Organization.serializeBinaryToWriter\n );\n }\n f = message.getUser();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.api.CreateOrganizationRequest.User.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateOrganizationRequest.Organization.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateOrganizationRequest.Organization.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateOrganizationRequest.Organization} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationRequest.Organization.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n email: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateOrganizationRequest.Organization}\n */\nproto.toit.api.CreateOrganizationRequest.Organization.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateOrganizationRequest.Organization;\n return proto.toit.api.CreateOrganizationRequest.Organization.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateOrganizationRequest.Organization} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateOrganizationRequest.Organization}\n */\nproto.toit.api.CreateOrganizationRequest.Organization.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateOrganizationRequest.Organization.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateOrganizationRequest.Organization.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateOrganizationRequest.Organization} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationRequest.Organization.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.toit.api.CreateOrganizationRequest.Organization.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateOrganizationRequest.Organization.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string email = 2;\n * @return {string}\n */\nproto.toit.api.CreateOrganizationRequest.Organization.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateOrganizationRequest.Organization.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateOrganizationRequest.User.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateOrganizationRequest.User.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateOrganizationRequest.User} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationRequest.User.toObject = function(includeInstance, msg) {\n var f, obj = {\n email: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n name: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateOrganizationRequest.User}\n */\nproto.toit.api.CreateOrganizationRequest.User.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateOrganizationRequest.User;\n return proto.toit.api.CreateOrganizationRequest.User.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateOrganizationRequest.User} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateOrganizationRequest.User}\n */\nproto.toit.api.CreateOrganizationRequest.User.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setEmail(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateOrganizationRequest.User.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateOrganizationRequest.User.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateOrganizationRequest.User} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationRequest.User.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEmail();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string email = 1;\n * @return {string}\n */\nproto.toit.api.CreateOrganizationRequest.User.prototype.getEmail = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateOrganizationRequest.User.prototype.setEmail = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string name = 2;\n * @return {string}\n */\nproto.toit.api.CreateOrganizationRequest.User.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.CreateOrganizationRequest.User.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional Organization organization = 1;\n * @return {?proto.toit.api.CreateOrganizationRequest.Organization}\n */\nproto.toit.api.CreateOrganizationRequest.prototype.getOrganization = function() {\n return /** @type{?proto.toit.api.CreateOrganizationRequest.Organization} */ (\n jspb.Message.getWrapperField(this, proto.toit.api.CreateOrganizationRequest.Organization, 1));\n};\n\n\n/** @param {?proto.toit.api.CreateOrganizationRequest.Organization|undefined} value */\nproto.toit.api.CreateOrganizationRequest.prototype.setOrganization = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.CreateOrganizationRequest.prototype.clearOrganization = function() {\n this.setOrganization(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.CreateOrganizationRequest.prototype.hasOrganization = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional User user = 2;\n * @return {?proto.toit.api.CreateOrganizationRequest.User}\n */\nproto.toit.api.CreateOrganizationRequest.prototype.getUser = function() {\n return /** @type{?proto.toit.api.CreateOrganizationRequest.User} */ (\n jspb.Message.getWrapperField(this, proto.toit.api.CreateOrganizationRequest.User, 2));\n};\n\n\n/** @param {?proto.toit.api.CreateOrganizationRequest.User|undefined} value */\nproto.toit.api.CreateOrganizationRequest.prototype.setUser = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.CreateOrganizationRequest.prototype.clearUser = function() {\n this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.CreateOrganizationRequest.prototype.hasUser = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.CreateOrganizationResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.CreateOrganizationResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.CreateOrganizationResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.CreateOrganizationResponse}\n */\nproto.toit.api.CreateOrganizationResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.CreateOrganizationResponse;\n return proto.toit.api.CreateOrganizationResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.CreateOrganizationResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.CreateOrganizationResponse}\n */\nproto.toit.api.CreateOrganizationResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateOrganizationResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.CreateOrganizationResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.CreateOrganizationResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.CreateOrganizationResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.CreateOrganizationResponse.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.CreateOrganizationResponse.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.CreateOrganizationResponse.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.CreateOrganizationResponse.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\ngoog.object.extend(exports, proto.toit.api);\n","/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar toit_model_device_pb = require('../../toit/model/device_pb.js');\ngoog.object.extend(proto, toit_model_device_pb);\nvar toit_model_data_pb = require('../../toit/model/data_pb.js');\ngoog.object.extend(proto, toit_model_data_pb);\nvar toit_model_pubsub_message_pb = require('../../toit/model/pubsub/message_pb.js');\ngoog.object.extend(proto, toit_model_pubsub_message_pb);\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.toit.api.ClaimHardwareIdentityRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ClaimHardwareIdentityResponse', null, global);\ngoog.exportSymbol('proto.toit.api.ClaimRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ClaimResponse', null, global);\ngoog.exportSymbol('proto.toit.api.GetActiveDeviceIDRequest', null, global);\ngoog.exportSymbol('proto.toit.api.GetActiveDeviceIDResponse', null, global);\ngoog.exportSymbol('proto.toit.api.HardwareEvent', null, global);\ngoog.exportSymbol('proto.toit.api.HardwareEvent.Type', null, global);\ngoog.exportSymbol('proto.toit.api.HardwareEventsRequest', null, global);\ngoog.exportSymbol('proto.toit.api.HardwareEventsResponse', null, global);\ngoog.exportSymbol('proto.toit.api.ReplaceRequest', null, global);\ngoog.exportSymbol('proto.toit.api.ReplaceResponse', null, global);\ngoog.exportSymbol('proto.toit.api.SetHardwareIdentityInfoRequest', null, global);\ngoog.exportSymbol('proto.toit.api.SetHardwareIdentityInfoResponse', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ClaimRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ClaimRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ClaimRequest.displayName = 'proto.toit.api.ClaimRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ClaimResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ClaimResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ClaimResponse.displayName = 'proto.toit.api.ClaimResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ReplaceRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ReplaceRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ReplaceRequest.displayName = 'proto.toit.api.ReplaceRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ReplaceResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ReplaceResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ReplaceResponse.displayName = 'proto.toit.api.ReplaceResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetActiveDeviceIDRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetActiveDeviceIDRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetActiveDeviceIDRequest.displayName = 'proto.toit.api.GetActiveDeviceIDRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.GetActiveDeviceIDResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.GetActiveDeviceIDResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.GetActiveDeviceIDResponse.displayName = 'proto.toit.api.GetActiveDeviceIDResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.HardwareEvent = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.api.HardwareEvent.oneofGroups_);\n};\ngoog.inherits(proto.toit.api.HardwareEvent, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.HardwareEvent.displayName = 'proto.toit.api.HardwareEvent';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.HardwareEventsRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.api.HardwareEventsRequest.oneofGroups_);\n};\ngoog.inherits(proto.toit.api.HardwareEventsRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.HardwareEventsRequest.displayName = 'proto.toit.api.HardwareEventsRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.HardwareEventsResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.HardwareEventsResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.HardwareEventsResponse.displayName = 'proto.toit.api.HardwareEventsResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ClaimHardwareIdentityRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ClaimHardwareIdentityRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ClaimHardwareIdentityRequest.displayName = 'proto.toit.api.ClaimHardwareIdentityRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.ClaimHardwareIdentityResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.ClaimHardwareIdentityResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.ClaimHardwareIdentityResponse.displayName = 'proto.toit.api.ClaimHardwareIdentityResponse';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.SetHardwareIdentityInfoRequest = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.SetHardwareIdentityInfoRequest, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.SetHardwareIdentityInfoRequest.displayName = 'proto.toit.api.SetHardwareIdentityInfoRequest';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.api.SetHardwareIdentityInfoResponse = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.api.SetHardwareIdentityInfoResponse, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.api.SetHardwareIdentityInfoResponse.displayName = 'proto.toit.api.SetHardwareIdentityInfoResponse';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ClaimRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ClaimRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ClaimRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64(),\n initDeviceName: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ClaimRequest}\n */\nproto.toit.api.ClaimRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ClaimRequest;\n return proto.toit.api.ClaimRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ClaimRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ClaimRequest}\n */\nproto.toit.api.ClaimRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setInitDeviceName(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ClaimRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ClaimRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getInitDeviceName();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ClaimRequest.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.api.ClaimRequest.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimRequest.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ClaimRequest.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional string init_device_name = 2;\n * @return {string}\n */\nproto.toit.api.ClaimRequest.prototype.getInitDeviceName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ClaimRequest.prototype.setInitDeviceName = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional bytes organization_id = 3;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ClaimRequest.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 3;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.ClaimRequest.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimRequest.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ClaimRequest.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ClaimResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ClaimResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ClaimResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareInfo: (f = msg.getHardwareInfo()) && toit_model_device_pb.HardwareInfo.toObject(includeInstance, f),\n deviceId: msg.getDeviceId_asB64(),\n deviceName: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ClaimResponse}\n */\nproto.toit.api.ClaimResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ClaimResponse;\n return proto.toit.api.ClaimResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ClaimResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ClaimResponse}\n */\nproto.toit.api.ClaimResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_device_pb.HardwareInfo;\n reader.readMessage(value,toit_model_device_pb.HardwareInfo.deserializeBinaryFromReader);\n msg.setHardwareInfo(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setDeviceName(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ClaimResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ClaimResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareInfo();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_device_pb.HardwareInfo.serializeBinaryToWriter\n );\n }\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getDeviceName();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional toit.model.HardwareInfo hardware_info = 1;\n * @return {?proto.toit.model.HardwareInfo}\n */\nproto.toit.api.ClaimResponse.prototype.getHardwareInfo = function() {\n return /** @type{?proto.toit.model.HardwareInfo} */ (\n jspb.Message.getWrapperField(this, toit_model_device_pb.HardwareInfo, 1));\n};\n\n\n/** @param {?proto.toit.model.HardwareInfo|undefined} value */\nproto.toit.api.ClaimResponse.prototype.setHardwareInfo = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.ClaimResponse.prototype.clearHardwareInfo = function() {\n this.setHardwareInfo(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.ClaimResponse.prototype.hasHardwareInfo = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bytes device_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ClaimResponse.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 2;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.api.ClaimResponse.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimResponse.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ClaimResponse.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional string device_name = 3;\n * @return {string}\n */\nproto.toit.api.ClaimResponse.prototype.getDeviceName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ClaimResponse.prototype.setDeviceName = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ClaimResponse.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.ClaimResponse.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimResponse.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ClaimResponse.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ReplaceRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ReplaceRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ReplaceRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ReplaceRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n newHardwareId: msg.getNewHardwareId_asB64(),\n currentHardwareId: msg.getCurrentHardwareId_asB64(),\n deviceId: msg.getDeviceId_asB64(),\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ReplaceRequest}\n */\nproto.toit.api.ReplaceRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ReplaceRequest;\n return proto.toit.api.ReplaceRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ReplaceRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ReplaceRequest}\n */\nproto.toit.api.ReplaceRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setNewHardwareId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCurrentHardwareId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ReplaceRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ReplaceRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ReplaceRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ReplaceRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNewHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getCurrentHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes new_hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ReplaceRequest.prototype.getNewHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes new_hardware_id = 1;\n * This is a type-conversion wrapper around `getNewHardwareId()`\n * @return {string}\n */\nproto.toit.api.ReplaceRequest.prototype.getNewHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getNewHardwareId()));\n};\n\n\n/**\n * optional bytes new_hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getNewHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ReplaceRequest.prototype.getNewHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getNewHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ReplaceRequest.prototype.setNewHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes current_hardware_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ReplaceRequest.prototype.getCurrentHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes current_hardware_id = 2;\n * This is a type-conversion wrapper around `getCurrentHardwareId()`\n * @return {string}\n */\nproto.toit.api.ReplaceRequest.prototype.getCurrentHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCurrentHardwareId()));\n};\n\n\n/**\n * optional bytes current_hardware_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCurrentHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ReplaceRequest.prototype.getCurrentHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCurrentHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ReplaceRequest.prototype.setCurrentHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes device_id = 3;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ReplaceRequest.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 3;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.api.ReplaceRequest.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ReplaceRequest.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ReplaceRequest.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ReplaceRequest.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.ReplaceRequest.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ReplaceRequest.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ReplaceRequest.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ReplaceResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ReplaceResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ReplaceResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ReplaceResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareInfo: (f = msg.getHardwareInfo()) && toit_model_device_pb.HardwareInfo.toObject(includeInstance, f),\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ReplaceResponse}\n */\nproto.toit.api.ReplaceResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ReplaceResponse;\n return proto.toit.api.ReplaceResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ReplaceResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ReplaceResponse}\n */\nproto.toit.api.ReplaceResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_device_pb.HardwareInfo;\n reader.readMessage(value,toit_model_device_pb.HardwareInfo.deserializeBinaryFromReader);\n msg.setHardwareInfo(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ReplaceResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ReplaceResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ReplaceResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ReplaceResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareInfo();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_device_pb.HardwareInfo.serializeBinaryToWriter\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional toit.model.HardwareInfo hardware_info = 1;\n * @return {?proto.toit.model.HardwareInfo}\n */\nproto.toit.api.ReplaceResponse.prototype.getHardwareInfo = function() {\n return /** @type{?proto.toit.model.HardwareInfo} */ (\n jspb.Message.getWrapperField(this, toit_model_device_pb.HardwareInfo, 1));\n};\n\n\n/** @param {?proto.toit.model.HardwareInfo|undefined} value */\nproto.toit.api.ReplaceResponse.prototype.setHardwareInfo = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.ReplaceResponse.prototype.clearHardwareInfo = function() {\n this.setHardwareInfo(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.ReplaceResponse.prototype.hasHardwareInfo = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.ReplaceResponse.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.ReplaceResponse.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.ReplaceResponse.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.ReplaceResponse.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetActiveDeviceIDRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetActiveDeviceIDRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetActiveDeviceIDRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetActiveDeviceIDRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetActiveDeviceIDRequest}\n */\nproto.toit.api.GetActiveDeviceIDRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetActiveDeviceIDRequest;\n return proto.toit.api.GetActiveDeviceIDRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetActiveDeviceIDRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetActiveDeviceIDRequest}\n */\nproto.toit.api.GetActiveDeviceIDRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetActiveDeviceIDRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetActiveDeviceIDRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetActiveDeviceIDRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetActiveDeviceIDRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.GetActiveDeviceIDRequest.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.api.GetActiveDeviceIDRequest.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.GetActiveDeviceIDRequest.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.GetActiveDeviceIDRequest.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.GetActiveDeviceIDResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.GetActiveDeviceIDResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.GetActiveDeviceIDResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetActiveDeviceIDResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n deviceId: msg.getDeviceId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.GetActiveDeviceIDResponse}\n */\nproto.toit.api.GetActiveDeviceIDResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.GetActiveDeviceIDResponse;\n return proto.toit.api.GetActiveDeviceIDResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.GetActiveDeviceIDResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.GetActiveDeviceIDResponse}\n */\nproto.toit.api.GetActiveDeviceIDResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.GetActiveDeviceIDResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.GetActiveDeviceIDResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.GetActiveDeviceIDResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.GetActiveDeviceIDResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes device_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.GetActiveDeviceIDResponse.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 1;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.api.GetActiveDeviceIDResponse.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.GetActiveDeviceIDResponse.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.GetActiveDeviceIDResponse.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.api.HardwareEvent.oneofGroups_ = [[9,10,11]];\n\n/**\n * @enum {number}\n */\nproto.toit.api.HardwareEvent.DataCase = {\n DATA_NOT_SET: 0,\n LOG: 9,\n METRICS: 10,\n PUBSUB: 11\n};\n\n/**\n * @return {proto.toit.api.HardwareEvent.DataCase}\n */\nproto.toit.api.HardwareEvent.prototype.getDataCase = function() {\n return /** @type {proto.toit.api.HardwareEvent.DataCase} */(jspb.Message.computeOneofCase(this, proto.toit.api.HardwareEvent.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.HardwareEvent.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.HardwareEvent.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.HardwareEvent} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.HardwareEvent.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64(),\n eventId: msg.getEventId_asB64(),\n type: jspb.Message.getFieldWithDefault(msg, 3, 0),\n jobId: msg.getJobId_asB64(),\n received: (f = msg.getReceived()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n deviceId: msg.getDeviceId_asB64(),\n organizationId: msg.getOrganizationId_asB64(),\n log: (f = msg.getLog()) && toit_model_data_pb.LogData.toObject(includeInstance, f),\n metrics: (f = msg.getMetrics()) && toit_model_data_pb.MetricsData.toObject(includeInstance, f),\n pubsub: (f = msg.getPubsub()) && toit_model_pubsub_message_pb.Message.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.HardwareEvent}\n */\nproto.toit.api.HardwareEvent.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.HardwareEvent;\n return proto.toit.api.HardwareEvent.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.HardwareEvent} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.HardwareEvent}\n */\nproto.toit.api.HardwareEvent.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setEventId(value);\n break;\n case 3:\n var value = /** @type {!proto.toit.api.HardwareEvent.Type} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setJobId(value);\n break;\n case 5:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setReceived(value);\n break;\n case 6:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setCreated(value);\n break;\n case 7:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n case 8:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n case 9:\n var value = new toit_model_data_pb.LogData;\n reader.readMessage(value,toit_model_data_pb.LogData.deserializeBinaryFromReader);\n msg.setLog(value);\n break;\n case 10:\n var value = new toit_model_data_pb.MetricsData;\n reader.readMessage(value,toit_model_data_pb.MetricsData.deserializeBinaryFromReader);\n msg.setMetrics(value);\n break;\n case 11:\n var value = new toit_model_pubsub_message_pb.Message;\n reader.readMessage(value,toit_model_pubsub_message_pb.Message.deserializeBinaryFromReader);\n msg.setPubsub(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEvent.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.HardwareEvent.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.HardwareEvent} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.HardwareEvent.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getEventId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n f = message.getJobId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getReceived();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getCreated();\n if (f != null) {\n writer.writeMessage(\n 6,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 7,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 8,\n f\n );\n }\n f = message.getLog();\n if (f != null) {\n writer.writeMessage(\n 9,\n f,\n toit_model_data_pb.LogData.serializeBinaryToWriter\n );\n }\n f = message.getMetrics();\n if (f != null) {\n writer.writeMessage(\n 10,\n f,\n toit_model_data_pb.MetricsData.serializeBinaryToWriter\n );\n }\n f = message.getPubsub();\n if (f != null) {\n writer.writeMessage(\n 11,\n f,\n toit_model_pubsub_message_pb.Message.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.api.HardwareEvent.Type = {\n UNKNOWN: 0,\n LOGS: 1,\n METRICS: 2,\n PUBSUB: 3\n};\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEvent.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.api.HardwareEvent.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEvent.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEvent.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes event_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEvent.prototype.getEventId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes event_id = 2;\n * This is a type-conversion wrapper around `getEventId()`\n * @return {string}\n */\nproto.toit.api.HardwareEvent.prototype.getEventId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getEventId()));\n};\n\n\n/**\n * optional bytes event_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getEventId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEvent.prototype.getEventId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getEventId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEvent.prototype.setEventId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional Type type = 3;\n * @return {!proto.toit.api.HardwareEvent.Type}\n */\nproto.toit.api.HardwareEvent.prototype.getType = function() {\n return /** @type {!proto.toit.api.HardwareEvent.Type} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {!proto.toit.api.HardwareEvent.Type} value */\nproto.toit.api.HardwareEvent.prototype.setType = function(value) {\n jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n/**\n * optional bytes job_id = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEvent.prototype.getJobId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes job_id = 4;\n * This is a type-conversion wrapper around `getJobId()`\n * @return {string}\n */\nproto.toit.api.HardwareEvent.prototype.getJobId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getJobId()));\n};\n\n\n/**\n * optional bytes job_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getJobId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEvent.prototype.getJobId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getJobId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEvent.prototype.setJobId = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp received = 5;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.api.HardwareEvent.prototype.getReceived = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 5));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.api.HardwareEvent.prototype.setReceived = function(value) {\n jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.HardwareEvent.prototype.clearReceived = function() {\n this.setReceived(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEvent.prototype.hasReceived = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp created = 6;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.api.HardwareEvent.prototype.getCreated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 6));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.api.HardwareEvent.prototype.setCreated = function(value) {\n jspb.Message.setWrapperField(this, 6, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.HardwareEvent.prototype.clearCreated = function() {\n this.setCreated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEvent.prototype.hasCreated = function() {\n return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional bytes device_id = 7;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEvent.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 7;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.api.HardwareEvent.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 7;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEvent.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEvent.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 7, value);\n};\n\n\n/**\n * optional bytes organization_id = 8;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEvent.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 8;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.api.HardwareEvent.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 8;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEvent.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEvent.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 8, value);\n};\n\n\n/**\n * optional toit.model.LogData log = 9;\n * @return {?proto.toit.model.LogData}\n */\nproto.toit.api.HardwareEvent.prototype.getLog = function() {\n return /** @type{?proto.toit.model.LogData} */ (\n jspb.Message.getWrapperField(this, toit_model_data_pb.LogData, 9));\n};\n\n\n/** @param {?proto.toit.model.LogData|undefined} value */\nproto.toit.api.HardwareEvent.prototype.setLog = function(value) {\n jspb.Message.setOneofWrapperField(this, 9, proto.toit.api.HardwareEvent.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.HardwareEvent.prototype.clearLog = function() {\n this.setLog(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEvent.prototype.hasLog = function() {\n return jspb.Message.getField(this, 9) != null;\n};\n\n\n/**\n * optional toit.model.MetricsData metrics = 10;\n * @return {?proto.toit.model.MetricsData}\n */\nproto.toit.api.HardwareEvent.prototype.getMetrics = function() {\n return /** @type{?proto.toit.model.MetricsData} */ (\n jspb.Message.getWrapperField(this, toit_model_data_pb.MetricsData, 10));\n};\n\n\n/** @param {?proto.toit.model.MetricsData|undefined} value */\nproto.toit.api.HardwareEvent.prototype.setMetrics = function(value) {\n jspb.Message.setOneofWrapperField(this, 10, proto.toit.api.HardwareEvent.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.HardwareEvent.prototype.clearMetrics = function() {\n this.setMetrics(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEvent.prototype.hasMetrics = function() {\n return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional toit.model.pubsub.Message pubsub = 11;\n * @return {?proto.toit.model.pubsub.Message}\n */\nproto.toit.api.HardwareEvent.prototype.getPubsub = function() {\n return /** @type{?proto.toit.model.pubsub.Message} */ (\n jspb.Message.getWrapperField(this, toit_model_pubsub_message_pb.Message, 11));\n};\n\n\n/** @param {?proto.toit.model.pubsub.Message|undefined} value */\nproto.toit.api.HardwareEvent.prototype.setPubsub = function(value) {\n jspb.Message.setOneofWrapperField(this, 11, proto.toit.api.HardwareEvent.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.HardwareEvent.prototype.clearPubsub = function() {\n this.setPubsub(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEvent.prototype.hasPubsub = function() {\n return jspb.Message.getField(this, 11) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.api.HardwareEventsRequest.oneofGroups_ = [[6,7]];\n\n/**\n * @enum {number}\n */\nproto.toit.api.HardwareEventsRequest.OffsetCase = {\n OFFSET_NOT_SET: 0,\n ID: 6,\n TS: 7\n};\n\n/**\n * @return {proto.toit.api.HardwareEventsRequest.OffsetCase}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getOffsetCase = function() {\n return /** @type {proto.toit.api.HardwareEventsRequest.OffsetCase} */(jspb.Message.computeOneofCase(this, proto.toit.api.HardwareEventsRequest.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.HardwareEventsRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.HardwareEventsRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.HardwareEventsRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.HardwareEventsRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64(),\n jobId: msg.getJobId_asB64(),\n type: jspb.Message.getFieldWithDefault(msg, 3, 0),\n limit: jspb.Message.getFieldWithDefault(msg, 4, 0),\n reverse: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n id: msg.getId_asB64(),\n ts: (f = msg.getTs()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.HardwareEventsRequest}\n */\nproto.toit.api.HardwareEventsRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.HardwareEventsRequest;\n return proto.toit.api.HardwareEventsRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.HardwareEventsRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.HardwareEventsRequest}\n */\nproto.toit.api.HardwareEventsRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setJobId(value);\n break;\n case 3:\n var value = /** @type {!proto.toit.api.HardwareEvent.Type} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readUint64());\n msg.setLimit(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setReverse(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n case 7:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setTs(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEventsRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.HardwareEventsRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.HardwareEventsRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.HardwareEventsRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getJobId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n f = message.getLimit();\n if (f !== 0) {\n writer.writeUint64(\n 4,\n f\n );\n }\n f = message.getReverse();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 6));\n if (f != null) {\n writer.writeBytes(\n 6,\n f\n );\n }\n f = message.getTs();\n if (f != null) {\n writer.writeMessage(\n 7,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEventsRequest.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes job_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getJobId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes job_id = 2;\n * This is a type-conversion wrapper around `getJobId()`\n * @return {string}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getJobId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getJobId()));\n};\n\n\n/**\n * optional bytes job_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getJobId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getJobId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getJobId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEventsRequest.prototype.setJobId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional HardwareEvent.Type type = 3;\n * @return {!proto.toit.api.HardwareEvent.Type}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getType = function() {\n return /** @type {!proto.toit.api.HardwareEvent.Type} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {!proto.toit.api.HardwareEvent.Type} value */\nproto.toit.api.HardwareEventsRequest.prototype.setType = function(value) {\n jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n/**\n * optional uint64 limit = 4;\n * @return {number}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getLimit = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.api.HardwareEventsRequest.prototype.setLimit = function(value) {\n jspb.Message.setProto3IntField(this, 4, value);\n};\n\n\n/**\n * optional bool reverse = 5;\n * @return {boolean}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getReverse = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.api.HardwareEventsRequest.prototype.setReverse = function(value) {\n jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * optional bytes id = 6;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * optional bytes id = 6;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.HardwareEventsRequest.prototype.setId = function(value) {\n jspb.Message.setOneofField(this, 6, proto.toit.api.HardwareEventsRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.api.HardwareEventsRequest.prototype.clearId = function() {\n jspb.Message.setOneofField(this, 6, proto.toit.api.HardwareEventsRequest.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEventsRequest.prototype.hasId = function() {\n return jspb.Message.getField(this, 6) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp ts = 7;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.api.HardwareEventsRequest.prototype.getTs = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.api.HardwareEventsRequest.prototype.setTs = function(value) {\n jspb.Message.setOneofWrapperField(this, 7, proto.toit.api.HardwareEventsRequest.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.HardwareEventsRequest.prototype.clearTs = function() {\n this.setTs(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEventsRequest.prototype.hasTs = function() {\n return jspb.Message.getField(this, 7) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.HardwareEventsResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.HardwareEventsResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.HardwareEventsResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.HardwareEventsResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n event: (f = msg.getEvent()) && proto.toit.api.HardwareEvent.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.HardwareEventsResponse}\n */\nproto.toit.api.HardwareEventsResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.HardwareEventsResponse;\n return proto.toit.api.HardwareEventsResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.HardwareEventsResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.HardwareEventsResponse}\n */\nproto.toit.api.HardwareEventsResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.api.HardwareEvent;\n reader.readMessage(value,proto.toit.api.HardwareEvent.deserializeBinaryFromReader);\n msg.setEvent(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.HardwareEventsResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.HardwareEventsResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.HardwareEventsResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.HardwareEventsResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEvent();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.api.HardwareEvent.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional HardwareEvent event = 1;\n * @return {?proto.toit.api.HardwareEvent}\n */\nproto.toit.api.HardwareEventsResponse.prototype.getEvent = function() {\n return /** @type{?proto.toit.api.HardwareEvent} */ (\n jspb.Message.getWrapperField(this, proto.toit.api.HardwareEvent, 1));\n};\n\n\n/** @param {?proto.toit.api.HardwareEvent|undefined} value */\nproto.toit.api.HardwareEventsResponse.prototype.setEvent = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.HardwareEventsResponse.prototype.clearEvent = function() {\n this.setEvent(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.HardwareEventsResponse.prototype.hasEvent = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ClaimHardwareIdentityRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ClaimHardwareIdentityRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ClaimHardwareIdentityRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimHardwareIdentityRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n flashStationSecret: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ClaimHardwareIdentityRequest}\n */\nproto.toit.api.ClaimHardwareIdentityRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ClaimHardwareIdentityRequest;\n return proto.toit.api.ClaimHardwareIdentityRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ClaimHardwareIdentityRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ClaimHardwareIdentityRequest}\n */\nproto.toit.api.ClaimHardwareIdentityRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setFlashStationSecret(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimHardwareIdentityRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ClaimHardwareIdentityRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ClaimHardwareIdentityRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimHardwareIdentityRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFlashStationSecret();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string flash_station_secret = 1;\n * @return {string}\n */\nproto.toit.api.ClaimHardwareIdentityRequest.prototype.getFlashStationSecret = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.ClaimHardwareIdentityRequest.prototype.setFlashStationSecret = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.ClaimHardwareIdentityResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.ClaimHardwareIdentityResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.ClaimHardwareIdentityResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimHardwareIdentityResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareIdentity: (f = msg.getHardwareIdentity()) && toit_model_device_pb.HardwareIdentity.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.ClaimHardwareIdentityResponse}\n */\nproto.toit.api.ClaimHardwareIdentityResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.ClaimHardwareIdentityResponse;\n return proto.toit.api.ClaimHardwareIdentityResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.ClaimHardwareIdentityResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.ClaimHardwareIdentityResponse}\n */\nproto.toit.api.ClaimHardwareIdentityResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new toit_model_device_pb.HardwareIdentity;\n reader.readMessage(value,toit_model_device_pb.HardwareIdentity.deserializeBinaryFromReader);\n msg.setHardwareIdentity(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.ClaimHardwareIdentityResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.ClaimHardwareIdentityResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.ClaimHardwareIdentityResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.ClaimHardwareIdentityResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareIdentity();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n toit_model_device_pb.HardwareIdentity.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional toit.model.HardwareIdentity hardware_identity = 1;\n * @return {?proto.toit.model.HardwareIdentity}\n */\nproto.toit.api.ClaimHardwareIdentityResponse.prototype.getHardwareIdentity = function() {\n return /** @type{?proto.toit.model.HardwareIdentity} */ (\n jspb.Message.getWrapperField(this, toit_model_device_pb.HardwareIdentity, 1));\n};\n\n\n/** @param {?proto.toit.model.HardwareIdentity|undefined} value */\nproto.toit.api.ClaimHardwareIdentityResponse.prototype.setHardwareIdentity = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.ClaimHardwareIdentityResponse.prototype.clearHardwareIdentity = function() {\n this.setHardwareIdentity(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.ClaimHardwareIdentityResponse.prototype.hasHardwareIdentity = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.SetHardwareIdentityInfoRequest.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.SetHardwareIdentityInfoRequest} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.toObject = function(includeInstance, msg) {\n var f, obj = {\n flashStationSecret: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n hardwareId: msg.getHardwareId_asB64(),\n info: (f = msg.getInfo()) && toit_model_device_pb.HardwareIdentityInfo.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.SetHardwareIdentityInfoRequest}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.SetHardwareIdentityInfoRequest;\n return proto.toit.api.SetHardwareIdentityInfoRequest.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.SetHardwareIdentityInfoRequest} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.SetHardwareIdentityInfoRequest}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setFlashStationSecret(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 3:\n var value = new toit_model_device_pb.HardwareIdentityInfo;\n reader.readMessage(value,toit_model_device_pb.HardwareIdentityInfo.deserializeBinaryFromReader);\n msg.setInfo(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.SetHardwareIdentityInfoRequest.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.SetHardwareIdentityInfoRequest} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFlashStationSecret();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getInfo();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n toit_model_device_pb.HardwareIdentityInfo.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string flash_station_secret = 1;\n * @return {string}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.getFlashStationSecret = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.setFlashStationSecret = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bytes hardware_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 2;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional toit.model.HardwareIdentityInfo info = 3;\n * @return {?proto.toit.model.HardwareIdentityInfo}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.getInfo = function() {\n return /** @type{?proto.toit.model.HardwareIdentityInfo} */ (\n jspb.Message.getWrapperField(this, toit_model_device_pb.HardwareIdentityInfo, 3));\n};\n\n\n/** @param {?proto.toit.model.HardwareIdentityInfo|undefined} value */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.setInfo = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.clearInfo = function() {\n this.setInfo(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.api.SetHardwareIdentityInfoRequest.prototype.hasInfo = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.api.SetHardwareIdentityInfoResponse.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.api.SetHardwareIdentityInfoResponse.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.api.SetHardwareIdentityInfoResponse} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetHardwareIdentityInfoResponse.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.api.SetHardwareIdentityInfoResponse}\n */\nproto.toit.api.SetHardwareIdentityInfoResponse.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.api.SetHardwareIdentityInfoResponse;\n return proto.toit.api.SetHardwareIdentityInfoResponse.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.api.SetHardwareIdentityInfoResponse} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.api.SetHardwareIdentityInfoResponse}\n */\nproto.toit.api.SetHardwareIdentityInfoResponse.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.api.SetHardwareIdentityInfoResponse.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.api.SetHardwareIdentityInfoResponse.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.api.SetHardwareIdentityInfoResponse} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.api.SetHardwareIdentityInfoResponse.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\ngoog.object.extend(exports, proto.toit.api);\n","/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\nvar google_protobuf_duration_pb = require('google-protobuf/google/protobuf/duration_pb.js');\ngoog.object.extend(proto, google_protobuf_duration_pb);\nvar google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js');\ngoog.object.extend(proto, google_protobuf_empty_pb);\nvar toit_model_data_pb = require('../../toit/model/data_pb.js');\ngoog.object.extend(proto, toit_model_data_pb);\ngoog.exportSymbol('proto.toit.model.ConnectionSetting', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceAction', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceBootStatus', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceBrokerSettings', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceChangeType', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceConfig', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceConnectionSettings', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceConnectionStatus', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceConnectionType', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Info', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Info.Value', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Info.Value.Diff', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Info.Value.Error', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Info.Value.Primitive', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Info.Value.Primitive.Type', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Initiater', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Initiater.Console', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Initiater.Device', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Initiater.User', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceEvent.Type', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceHealth', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceHealth.BatteryCurve', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceHealth.Connectivity', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceHealth.Connectivity.Checkin', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceHealth.Power', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceHealth.Power.Value', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceModelSettings', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceModule', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceModuleType', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceModules', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceModulesConfig', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceModulesStatus', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceRuntimeSettings', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceSessionChangeType', null, global);\ngoog.exportSymbol('proto.toit.model.DeviceStatus', null, global);\ngoog.exportSymbol('proto.toit.model.HardwareIdentity', null, global);\ngoog.exportSymbol('proto.toit.model.HardwareIdentityInfo', null, global);\ngoog.exportSymbol('proto.toit.model.HardwareInfo', null, global);\ngoog.exportSymbol('proto.toit.model.HardwareToDeviceInfo', null, global);\ngoog.exportSymbol('proto.toit.model.LoggingSettings', null, global);\ngoog.exportSymbol('proto.toit.model.MetricsSettings', null, global);\ngoog.exportSymbol('proto.toit.model.NBIoTSetting', null, global);\ngoog.exportSymbol('proto.toit.model.WifiSetting', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceConfig.displayName = 'proto.toit.model.DeviceConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceModulesConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceModulesConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceModulesConfig.displayName = 'proto.toit.model.DeviceModulesConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceRuntimeSettings = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceRuntimeSettings, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceRuntimeSettings.displayName = 'proto.toit.model.DeviceRuntimeSettings';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.LoggingSettings = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.LoggingSettings, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.LoggingSettings.displayName = 'proto.toit.model.LoggingSettings';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.MetricsSettings = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.MetricsSettings, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.MetricsSettings.displayName = 'proto.toit.model.MetricsSettings';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceConnectionSettings = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.model.DeviceConnectionSettings.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.model.DeviceConnectionSettings, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceConnectionSettings.displayName = 'proto.toit.model.DeviceConnectionSettings';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.ConnectionSetting = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.ConnectionSetting, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.ConnectionSetting.displayName = 'proto.toit.model.ConnectionSetting';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.WifiSetting = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.WifiSetting, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.WifiSetting.displayName = 'proto.toit.model.WifiSetting';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.NBIoTSetting = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.model.NBIoTSetting.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.model.NBIoTSetting, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.NBIoTSetting.displayName = 'proto.toit.model.NBIoTSetting';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceBrokerSettings = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceBrokerSettings, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceBrokerSettings.displayName = 'proto.toit.model.DeviceBrokerSettings';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceStatus = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceStatus, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceStatus.displayName = 'proto.toit.model.DeviceStatus';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceModulesStatus = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceModulesStatus, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceModulesStatus.displayName = 'proto.toit.model.DeviceModulesStatus';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceModules = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceModules, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceModules.displayName = 'proto.toit.model.DeviceModules';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceModule = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceModule, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceModule.displayName = 'proto.toit.model.DeviceModule';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceConnectionStatus = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceConnectionStatus, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceConnectionStatus.displayName = 'proto.toit.model.DeviceConnectionStatus';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceBootStatus = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceBootStatus, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceBootStatus.displayName = 'proto.toit.model.DeviceBootStatus';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceHealth = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceHealth, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceHealth.displayName = 'proto.toit.model.DeviceHealth';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceHealth.Power = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceHealth.Power, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceHealth.Power.displayName = 'proto.toit.model.DeviceHealth.Power';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceHealth.Power.Value = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.model.DeviceHealth.Power.Value.oneofGroups_);\n};\ngoog.inherits(proto.toit.model.DeviceHealth.Power.Value, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceHealth.Power.Value.displayName = 'proto.toit.model.DeviceHealth.Power.Value';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceHealth.BatteryCurve = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceHealth.BatteryCurve, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceHealth.BatteryCurve.displayName = 'proto.toit.model.DeviceHealth.BatteryCurve';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceHealth.Connectivity = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.model.DeviceHealth.Connectivity.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.model.DeviceHealth.Connectivity, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceHealth.Connectivity.displayName = 'proto.toit.model.DeviceHealth.Connectivity';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceHealth.Connectivity.Checkin, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceHealth.Connectivity.Checkin.displayName = 'proto.toit.model.DeviceHealth.Connectivity.Checkin';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.HardwareIdentity = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.HardwareIdentity, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.HardwareIdentity.displayName = 'proto.toit.model.HardwareIdentity';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.HardwareIdentityInfo = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.HardwareIdentityInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.HardwareIdentityInfo.displayName = 'proto.toit.model.HardwareIdentityInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.HardwareInfo = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.HardwareInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.HardwareInfo.displayName = 'proto.toit.model.HardwareInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.HardwareToDeviceInfo = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.HardwareToDeviceInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.HardwareToDeviceInfo.displayName = 'proto.toit.model.HardwareToDeviceInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.toit.model.DeviceEvent.repeatedFields_, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.displayName = 'proto.toit.model.DeviceEvent';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Initiater = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.model.DeviceEvent.Initiater.oneofGroups_);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Initiater, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Initiater.displayName = 'proto.toit.model.DeviceEvent.Initiater';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Initiater.Device = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Initiater.Device, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Initiater.Device.displayName = 'proto.toit.model.DeviceEvent.Initiater.Device';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Initiater.Console = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Initiater.Console, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Initiater.Console.displayName = 'proto.toit.model.DeviceEvent.Initiater.Console';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Initiater.User = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Initiater.User, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Initiater.User.displayName = 'proto.toit.model.DeviceEvent.Initiater.User';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Info = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Info, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Info.displayName = 'proto.toit.model.DeviceEvent.Info';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Info.Value = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.model.DeviceEvent.Info.Value.oneofGroups_);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Info.Value, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Info.Value.displayName = 'proto.toit.model.DeviceEvent.Info.Value';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Info.Value.Primitive, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Info.Value.Primitive.displayName = 'proto.toit.model.DeviceEvent.Info.Value.Primitive';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Info.Value.Diff, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Info.Value.Diff.displayName = 'proto.toit.model.DeviceEvent.Info.Value.Diff';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceEvent.Info.Value.Error = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceEvent.Info.Value.Error, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceEvent.Info.Value.Error.displayName = 'proto.toit.model.DeviceEvent.Info.Value.Error';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.DeviceModelSettings = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.DeviceModelSettings, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.DeviceModelSettings.displayName = 'proto.toit.model.DeviceModelSettings';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n startedAfter: (f = msg.getStartedAfter()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n sdk: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n broker: (f = msg.getBroker()) && proto.toit.model.DeviceBrokerSettings.toObject(includeInstance, f),\n connection: (f = msg.getConnection()) && proto.toit.model.DeviceConnectionSettings.toObject(includeInstance, f),\n model: jspb.Message.getFieldWithDefault(msg, 6, \"\"),\n factoryAfter: (f = msg.getFactoryAfter()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n runtime: (f = msg.getRuntime()) && proto.toit.model.DeviceRuntimeSettings.toObject(includeInstance, f),\n modules: (f = msg.getModules()) && proto.toit.model.DeviceModulesConfig.toObject(includeInstance, f),\n modelSettings: (f = msg.getModelSettings()) && proto.toit.model.DeviceModelSettings.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceConfig}\n */\nproto.toit.model.DeviceConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceConfig;\n return proto.toit.model.DeviceConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceConfig}\n */\nproto.toit.model.DeviceConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 2:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setStartedAfter(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setSdk(value);\n break;\n case 4:\n var value = new proto.toit.model.DeviceBrokerSettings;\n reader.readMessage(value,proto.toit.model.DeviceBrokerSettings.deserializeBinaryFromReader);\n msg.setBroker(value);\n break;\n case 5:\n var value = new proto.toit.model.DeviceConnectionSettings;\n reader.readMessage(value,proto.toit.model.DeviceConnectionSettings.deserializeBinaryFromReader);\n msg.setConnection(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.setModel(value);\n break;\n case 7:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setFactoryAfter(value);\n break;\n case 8:\n var value = new proto.toit.model.DeviceRuntimeSettings;\n reader.readMessage(value,proto.toit.model.DeviceRuntimeSettings.deserializeBinaryFromReader);\n msg.setRuntime(value);\n break;\n case 9:\n var value = new proto.toit.model.DeviceModulesConfig;\n reader.readMessage(value,proto.toit.model.DeviceModulesConfig.deserializeBinaryFromReader);\n msg.setModules(value);\n break;\n case 10:\n var value = new proto.toit.model.DeviceModelSettings;\n reader.readMessage(value,proto.toit.model.DeviceModelSettings.deserializeBinaryFromReader);\n msg.setModelSettings(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getStartedAfter();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getSdk();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getBroker();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.toit.model.DeviceBrokerSettings.serializeBinaryToWriter\n );\n }\n f = message.getConnection();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n proto.toit.model.DeviceConnectionSettings.serializeBinaryToWriter\n );\n }\n f = message.getModel();\n if (f.length > 0) {\n writer.writeString(\n 6,\n f\n );\n }\n f = message.getFactoryAfter();\n if (f != null) {\n writer.writeMessage(\n 7,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getRuntime();\n if (f != null) {\n writer.writeMessage(\n 8,\n f,\n proto.toit.model.DeviceRuntimeSettings.serializeBinaryToWriter\n );\n }\n f = message.getModules();\n if (f != null) {\n writer.writeMessage(\n 9,\n f,\n proto.toit.model.DeviceModulesConfig.serializeBinaryToWriter\n );\n }\n f = message.getModelSettings();\n if (f != null) {\n writer.writeMessage(\n 10,\n f,\n proto.toit.model.DeviceModelSettings.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.toit.model.DeviceConfig.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceConfig.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp started_after = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceConfig.prototype.getStartedAfter = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceConfig.prototype.setStartedAfter = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConfig.prototype.clearStartedAfter = function() {\n this.setStartedAfter(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConfig.prototype.hasStartedAfter = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string sdk = 3;\n * @return {string}\n */\nproto.toit.model.DeviceConfig.prototype.getSdk = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceConfig.prototype.setSdk = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional DeviceBrokerSettings broker = 4;\n * @return {?proto.toit.model.DeviceBrokerSettings}\n */\nproto.toit.model.DeviceConfig.prototype.getBroker = function() {\n return /** @type{?proto.toit.model.DeviceBrokerSettings} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceBrokerSettings, 4));\n};\n\n\n/** @param {?proto.toit.model.DeviceBrokerSettings|undefined} value */\nproto.toit.model.DeviceConfig.prototype.setBroker = function(value) {\n jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConfig.prototype.clearBroker = function() {\n this.setBroker(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConfig.prototype.hasBroker = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional DeviceConnectionSettings connection = 5;\n * @return {?proto.toit.model.DeviceConnectionSettings}\n */\nproto.toit.model.DeviceConfig.prototype.getConnection = function() {\n return /** @type{?proto.toit.model.DeviceConnectionSettings} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceConnectionSettings, 5));\n};\n\n\n/** @param {?proto.toit.model.DeviceConnectionSettings|undefined} value */\nproto.toit.model.DeviceConfig.prototype.setConnection = function(value) {\n jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConfig.prototype.clearConnection = function() {\n this.setConnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConfig.prototype.hasConnection = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional string model = 6;\n * @return {string}\n */\nproto.toit.model.DeviceConfig.prototype.getModel = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceConfig.prototype.setModel = function(value) {\n jspb.Message.setProto3StringField(this, 6, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp factory_after = 7;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceConfig.prototype.getFactoryAfter = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 7));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceConfig.prototype.setFactoryAfter = function(value) {\n jspb.Message.setWrapperField(this, 7, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConfig.prototype.clearFactoryAfter = function() {\n this.setFactoryAfter(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConfig.prototype.hasFactoryAfter = function() {\n return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * optional DeviceRuntimeSettings runtime = 8;\n * @return {?proto.toit.model.DeviceRuntimeSettings}\n */\nproto.toit.model.DeviceConfig.prototype.getRuntime = function() {\n return /** @type{?proto.toit.model.DeviceRuntimeSettings} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceRuntimeSettings, 8));\n};\n\n\n/** @param {?proto.toit.model.DeviceRuntimeSettings|undefined} value */\nproto.toit.model.DeviceConfig.prototype.setRuntime = function(value) {\n jspb.Message.setWrapperField(this, 8, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConfig.prototype.clearRuntime = function() {\n this.setRuntime(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConfig.prototype.hasRuntime = function() {\n return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional DeviceModulesConfig modules = 9;\n * @return {?proto.toit.model.DeviceModulesConfig}\n */\nproto.toit.model.DeviceConfig.prototype.getModules = function() {\n return /** @type{?proto.toit.model.DeviceModulesConfig} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceModulesConfig, 9));\n};\n\n\n/** @param {?proto.toit.model.DeviceModulesConfig|undefined} value */\nproto.toit.model.DeviceConfig.prototype.setModules = function(value) {\n jspb.Message.setWrapperField(this, 9, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConfig.prototype.clearModules = function() {\n this.setModules(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConfig.prototype.hasModules = function() {\n return jspb.Message.getField(this, 9) != null;\n};\n\n\n/**\n * optional DeviceModelSettings model_settings = 10;\n * @return {?proto.toit.model.DeviceModelSettings}\n */\nproto.toit.model.DeviceConfig.prototype.getModelSettings = function() {\n return /** @type{?proto.toit.model.DeviceModelSettings} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceModelSettings, 10));\n};\n\n\n/** @param {?proto.toit.model.DeviceModelSettings|undefined} value */\nproto.toit.model.DeviceConfig.prototype.setModelSettings = function(value) {\n jspb.Message.setWrapperField(this, 10, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConfig.prototype.clearModelSettings = function() {\n this.setModelSettings(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConfig.prototype.hasModelSettings = function() {\n return jspb.Message.getField(this, 10) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceModulesConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceModulesConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceModulesConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModulesConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n syncRequested: (f = msg.getSyncRequested()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n modules: (f = msg.getModules()) && proto.toit.model.DeviceModules.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceModulesConfig}\n */\nproto.toit.model.DeviceModulesConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceModulesConfig;\n return proto.toit.model.DeviceModulesConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceModulesConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceModulesConfig}\n */\nproto.toit.model.DeviceModulesConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setSyncRequested(value);\n break;\n case 2:\n var value = new proto.toit.model.DeviceModules;\n reader.readMessage(value,proto.toit.model.DeviceModules.deserializeBinaryFromReader);\n msg.setModules(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceModulesConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceModulesConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceModulesConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModulesConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getSyncRequested();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getModules();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.DeviceModules.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional google.protobuf.Timestamp sync_requested = 1;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceModulesConfig.prototype.getSyncRequested = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceModulesConfig.prototype.setSyncRequested = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceModulesConfig.prototype.clearSyncRequested = function() {\n this.setSyncRequested(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceModulesConfig.prototype.hasSyncRequested = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional DeviceModules modules = 2;\n * @return {?proto.toit.model.DeviceModules}\n */\nproto.toit.model.DeviceModulesConfig.prototype.getModules = function() {\n return /** @type{?proto.toit.model.DeviceModules} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceModules, 2));\n};\n\n\n/** @param {?proto.toit.model.DeviceModules|undefined} value */\nproto.toit.model.DeviceModulesConfig.prototype.setModules = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceModulesConfig.prototype.clearModules = function() {\n this.setModules(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceModulesConfig.prototype.hasModules = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceRuntimeSettings.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceRuntimeSettings} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceRuntimeSettings.toObject = function(includeInstance, msg) {\n var f, obj = {\n logging: (f = msg.getLogging()) && proto.toit.model.LoggingSettings.toObject(includeInstance, f),\n metrics: (f = msg.getMetrics()) && proto.toit.model.MetricsSettings.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceRuntimeSettings}\n */\nproto.toit.model.DeviceRuntimeSettings.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceRuntimeSettings;\n return proto.toit.model.DeviceRuntimeSettings.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceRuntimeSettings} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceRuntimeSettings}\n */\nproto.toit.model.DeviceRuntimeSettings.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.LoggingSettings;\n reader.readMessage(value,proto.toit.model.LoggingSettings.deserializeBinaryFromReader);\n msg.setLogging(value);\n break;\n case 2:\n var value = new proto.toit.model.MetricsSettings;\n reader.readMessage(value,proto.toit.model.MetricsSettings.deserializeBinaryFromReader);\n msg.setMetrics(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceRuntimeSettings.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceRuntimeSettings} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceRuntimeSettings.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLogging();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.LoggingSettings.serializeBinaryToWriter\n );\n }\n f = message.getMetrics();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.MetricsSettings.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional LoggingSettings logging = 1;\n * @return {?proto.toit.model.LoggingSettings}\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.getLogging = function() {\n return /** @type{?proto.toit.model.LoggingSettings} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.LoggingSettings, 1));\n};\n\n\n/** @param {?proto.toit.model.LoggingSettings|undefined} value */\nproto.toit.model.DeviceRuntimeSettings.prototype.setLogging = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.clearLogging = function() {\n this.setLogging(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.hasLogging = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional MetricsSettings metrics = 2;\n * @return {?proto.toit.model.MetricsSettings}\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.getMetrics = function() {\n return /** @type{?proto.toit.model.MetricsSettings} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.MetricsSettings, 2));\n};\n\n\n/** @param {?proto.toit.model.MetricsSettings|undefined} value */\nproto.toit.model.DeviceRuntimeSettings.prototype.setMetrics = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.clearMetrics = function() {\n this.setMetrics(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceRuntimeSettings.prototype.hasMetrics = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.LoggingSettings.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.LoggingSettings.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.LoggingSettings} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.LoggingSettings.toObject = function(includeInstance, msg) {\n var f, obj = {\n level: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.LoggingSettings}\n */\nproto.toit.model.LoggingSettings.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.LoggingSettings;\n return proto.toit.model.LoggingSettings.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.LoggingSettings} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.LoggingSettings}\n */\nproto.toit.model.LoggingSettings.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!proto.toit.model.LogData.Level} */ (reader.readEnum());\n msg.setLevel(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.LoggingSettings.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.LoggingSettings.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.LoggingSettings} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.LoggingSettings.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLevel();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional LogData.Level level = 1;\n * @return {!proto.toit.model.LogData.Level}\n */\nproto.toit.model.LoggingSettings.prototype.getLevel = function() {\n return /** @type {!proto.toit.model.LogData.Level} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {!proto.toit.model.LogData.Level} value */\nproto.toit.model.LoggingSettings.prototype.setLevel = function(value) {\n jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.MetricsSettings.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.MetricsSettings.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.MetricsSettings} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.MetricsSettings.toObject = function(includeInstance, msg) {\n var f, obj = {\n level: jspb.Message.getFieldWithDefault(msg, 1, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.MetricsSettings}\n */\nproto.toit.model.MetricsSettings.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.MetricsSettings;\n return proto.toit.model.MetricsSettings.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.MetricsSettings} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.MetricsSettings}\n */\nproto.toit.model.MetricsSettings.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!proto.toit.model.MetricsData.Level} */ (reader.readEnum());\n msg.setLevel(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.MetricsSettings.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.MetricsSettings.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.MetricsSettings} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.MetricsSettings.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLevel();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional MetricsData.Level level = 1;\n * @return {!proto.toit.model.MetricsData.Level}\n */\nproto.toit.model.MetricsSettings.prototype.getLevel = function() {\n return /** @type {!proto.toit.model.MetricsData.Level} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {!proto.toit.model.MetricsData.Level} value */\nproto.toit.model.MetricsSettings.prototype.setLevel = function(value) {\n jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.model.DeviceConnectionSettings.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceConnectionSettings.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceConnectionSettings.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceConnectionSettings} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceConnectionSettings.toObject = function(includeInstance, msg) {\n var f, obj = {\n maxOffline: (f = msg.getMaxOffline()) && google_protobuf_duration_pb.Duration.toObject(includeInstance, f),\n connectionsList: jspb.Message.toObjectList(msg.getConnectionsList(),\n proto.toit.model.ConnectionSetting.toObject, includeInstance),\n eventQueueThreshold: jspb.Message.getFieldWithDefault(msg, 3, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceConnectionSettings}\n */\nproto.toit.model.DeviceConnectionSettings.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceConnectionSettings;\n return proto.toit.model.DeviceConnectionSettings.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceConnectionSettings} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceConnectionSettings}\n */\nproto.toit.model.DeviceConnectionSettings.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_duration_pb.Duration;\n reader.readMessage(value,google_protobuf_duration_pb.Duration.deserializeBinaryFromReader);\n msg.setMaxOffline(value);\n break;\n case 2:\n var value = new proto.toit.model.ConnectionSetting;\n reader.readMessage(value,proto.toit.model.ConnectionSetting.deserializeBinaryFromReader);\n msg.addConnections(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readUint32());\n msg.setEventQueueThreshold(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceConnectionSettings.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceConnectionSettings.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceConnectionSettings} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceConnectionSettings.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMaxOffline();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n google_protobuf_duration_pb.Duration.serializeBinaryToWriter\n );\n }\n f = message.getConnectionsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 2,\n f,\n proto.toit.model.ConnectionSetting.serializeBinaryToWriter\n );\n }\n f = message.getEventQueueThreshold();\n if (f !== 0) {\n writer.writeUint32(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional google.protobuf.Duration max_offline = 1;\n * @return {?proto.google.protobuf.Duration}\n */\nproto.toit.model.DeviceConnectionSettings.prototype.getMaxOffline = function() {\n return /** @type{?proto.google.protobuf.Duration} */ (\n jspb.Message.getWrapperField(this, google_protobuf_duration_pb.Duration, 1));\n};\n\n\n/** @param {?proto.google.protobuf.Duration|undefined} value */\nproto.toit.model.DeviceConnectionSettings.prototype.setMaxOffline = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceConnectionSettings.prototype.clearMaxOffline = function() {\n this.setMaxOffline(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceConnectionSettings.prototype.hasMaxOffline = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated ConnectionSetting connections = 2;\n * @return {!Array}\n */\nproto.toit.model.DeviceConnectionSettings.prototype.getConnectionsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.model.ConnectionSetting, 2));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.DeviceConnectionSettings.prototype.setConnectionsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 2, value);\n};\n\n\n/**\n * @param {!proto.toit.model.ConnectionSetting=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.ConnectionSetting}\n */\nproto.toit.model.DeviceConnectionSettings.prototype.addConnections = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.toit.model.ConnectionSetting, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.DeviceConnectionSettings.prototype.clearConnectionsList = function() {\n this.setConnectionsList([]);\n};\n\n\n/**\n * optional uint32 event_queue_threshold = 3;\n * @return {number}\n */\nproto.toit.model.DeviceConnectionSettings.prototype.getEventQueueThreshold = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceConnectionSettings.prototype.setEventQueueThreshold = function(value) {\n jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.ConnectionSetting.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.ConnectionSetting.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.ConnectionSetting} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.ConnectionSetting.toObject = function(includeInstance, msg) {\n var f, obj = {\n wifi: (f = msg.getWifi()) && proto.toit.model.WifiSetting.toObject(includeInstance, f),\n nbiot: (f = msg.getNbiot()) && proto.toit.model.NBIoTSetting.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.ConnectionSetting}\n */\nproto.toit.model.ConnectionSetting.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.ConnectionSetting;\n return proto.toit.model.ConnectionSetting.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.ConnectionSetting} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.ConnectionSetting}\n */\nproto.toit.model.ConnectionSetting.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.WifiSetting;\n reader.readMessage(value,proto.toit.model.WifiSetting.deserializeBinaryFromReader);\n msg.setWifi(value);\n break;\n case 2:\n var value = new proto.toit.model.NBIoTSetting;\n reader.readMessage(value,proto.toit.model.NBIoTSetting.deserializeBinaryFromReader);\n msg.setNbiot(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.ConnectionSetting.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.ConnectionSetting.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.ConnectionSetting} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.ConnectionSetting.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getWifi();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.WifiSetting.serializeBinaryToWriter\n );\n }\n f = message.getNbiot();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.NBIoTSetting.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional WifiSetting wifi = 1;\n * @return {?proto.toit.model.WifiSetting}\n */\nproto.toit.model.ConnectionSetting.prototype.getWifi = function() {\n return /** @type{?proto.toit.model.WifiSetting} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.WifiSetting, 1));\n};\n\n\n/** @param {?proto.toit.model.WifiSetting|undefined} value */\nproto.toit.model.ConnectionSetting.prototype.setWifi = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.ConnectionSetting.prototype.clearWifi = function() {\n this.setWifi(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.ConnectionSetting.prototype.hasWifi = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional NBIoTSetting nbiot = 2;\n * @return {?proto.toit.model.NBIoTSetting}\n */\nproto.toit.model.ConnectionSetting.prototype.getNbiot = function() {\n return /** @type{?proto.toit.model.NBIoTSetting} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.NBIoTSetting, 2));\n};\n\n\n/** @param {?proto.toit.model.NBIoTSetting|undefined} value */\nproto.toit.model.ConnectionSetting.prototype.setNbiot = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.ConnectionSetting.prototype.clearNbiot = function() {\n this.setNbiot(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.ConnectionSetting.prototype.hasNbiot = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.WifiSetting.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.WifiSetting.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.WifiSetting} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.WifiSetting.toObject = function(includeInstance, msg) {\n var f, obj = {\n ssid: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n password: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.WifiSetting}\n */\nproto.toit.model.WifiSetting.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.WifiSetting;\n return proto.toit.model.WifiSetting.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.WifiSetting} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.WifiSetting}\n */\nproto.toit.model.WifiSetting.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setSsid(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setPassword(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.WifiSetting.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.WifiSetting.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.WifiSetting} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.WifiSetting.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getSsid();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getPassword();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string ssid = 1;\n * @return {string}\n */\nproto.toit.model.WifiSetting.prototype.getSsid = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.WifiSetting.prototype.setSsid = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string password = 2;\n * @return {string}\n */\nproto.toit.model.WifiSetting.prototype.getPassword = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.WifiSetting.prototype.setPassword = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.model.NBIoTSetting.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.NBIoTSetting.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.NBIoTSetting.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.NBIoTSetting} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.NBIoTSetting.toObject = function(includeInstance, msg) {\n var f, obj = {\n apn: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n bandsList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n operator: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n pin: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.NBIoTSetting}\n */\nproto.toit.model.NBIoTSetting.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.NBIoTSetting;\n return proto.toit.model.NBIoTSetting.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.NBIoTSetting} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.NBIoTSetting}\n */\nproto.toit.model.NBIoTSetting.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setApn(value);\n break;\n case 2:\n var value = /** @type {!Array} */ (reader.readPackedInt64());\n msg.setBandsList(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setOperator(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setPin(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.NBIoTSetting.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.NBIoTSetting.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.NBIoTSetting} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.NBIoTSetting.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getApn();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getBandsList();\n if (f.length > 0) {\n writer.writePackedInt64(\n 2,\n f\n );\n }\n f = message.getOperator();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getPin();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional string apn = 1;\n * @return {string}\n */\nproto.toit.model.NBIoTSetting.prototype.getApn = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.NBIoTSetting.prototype.setApn = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * repeated int64 bands = 2;\n * @return {!Array}\n */\nproto.toit.model.NBIoTSetting.prototype.getBandsList = function() {\n return /** @type {!Array} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.NBIoTSetting.prototype.setBandsList = function(value) {\n jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {number} value\n * @param {number=} opt_index\n */\nproto.toit.model.NBIoTSetting.prototype.addBands = function(value, opt_index) {\n jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.NBIoTSetting.prototype.clearBandsList = function() {\n this.setBandsList([]);\n};\n\n\n/**\n * optional string operator = 3;\n * @return {string}\n */\nproto.toit.model.NBIoTSetting.prototype.getOperator = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.NBIoTSetting.prototype.setOperator = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string pin = 4;\n * @return {string}\n */\nproto.toit.model.NBIoTSetting.prototype.getPin = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.NBIoTSetting.prototype.setPin = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceBrokerSettings.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceBrokerSettings.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceBrokerSettings} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceBrokerSettings.toObject = function(includeInstance, msg) {\n var f, obj = {\n host: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n port: jspb.Message.getFieldWithDefault(msg, 2, 0),\n cn: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n protocol: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceBrokerSettings}\n */\nproto.toit.model.DeviceBrokerSettings.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceBrokerSettings;\n return proto.toit.model.DeviceBrokerSettings.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceBrokerSettings} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceBrokerSettings}\n */\nproto.toit.model.DeviceBrokerSettings.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setHost(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setPort(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setCn(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setProtocol(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceBrokerSettings.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceBrokerSettings.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceBrokerSettings} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceBrokerSettings.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHost();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getPort();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getCn();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getProtocol();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional string host = 1;\n * @return {string}\n */\nproto.toit.model.DeviceBrokerSettings.prototype.getHost = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceBrokerSettings.prototype.setHost = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional int64 port = 2;\n * @return {number}\n */\nproto.toit.model.DeviceBrokerSettings.prototype.getPort = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceBrokerSettings.prototype.setPort = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string cn = 3;\n * @return {string}\n */\nproto.toit.model.DeviceBrokerSettings.prototype.getCn = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceBrokerSettings.prototype.setCn = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string protocol = 4;\n * @return {string}\n */\nproto.toit.model.DeviceBrokerSettings.prototype.getProtocol = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceBrokerSettings.prototype.setProtocol = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceStatus.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceStatus.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceStatus} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceStatus.toObject = function(includeInstance, msg) {\n var f, obj = {\n revision: jspb.Message.getFieldWithDefault(msg, 1, 0),\n epoch: msg.getEpoch_asB64(),\n stateRevision: jspb.Message.getFieldWithDefault(msg, 5, 0),\n updated: (f = msg.getUpdated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n configRevision: jspb.Message.getFieldWithDefault(msg, 3, 0),\n sdk: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n model: jspb.Message.getFieldWithDefault(msg, 7, \"\"),\n config: (f = msg.getConfig()) && proto.toit.model.DeviceConfig.toObject(includeInstance, f),\n connected: jspb.Message.getBooleanFieldWithDefault(msg, 9, false),\n boot: (f = msg.getBoot()) && proto.toit.model.DeviceBootStatus.toObject(includeInstance, f),\n health: (f = msg.getHealth()) && proto.toit.model.DeviceHealth.toObject(includeInstance, f),\n connection: (f = msg.getConnection()) && proto.toit.model.DeviceConnectionStatus.toObject(includeInstance, f),\n modules: (f = msg.getModules()) && proto.toit.model.DeviceModulesStatus.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceStatus}\n */\nproto.toit.model.DeviceStatus.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceStatus;\n return proto.toit.model.DeviceStatus.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceStatus} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceStatus}\n */\nproto.toit.model.DeviceStatus.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setRevision(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setEpoch(value);\n break;\n case 5:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setStateRevision(value);\n break;\n case 2:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setUpdated(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setConfigRevision(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setSdk(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setModel(value);\n break;\n case 8:\n var value = new proto.toit.model.DeviceConfig;\n reader.readMessage(value,proto.toit.model.DeviceConfig.deserializeBinaryFromReader);\n msg.setConfig(value);\n break;\n case 9:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setConnected(value);\n break;\n case 10:\n var value = new proto.toit.model.DeviceBootStatus;\n reader.readMessage(value,proto.toit.model.DeviceBootStatus.deserializeBinaryFromReader);\n msg.setBoot(value);\n break;\n case 11:\n var value = new proto.toit.model.DeviceHealth;\n reader.readMessage(value,proto.toit.model.DeviceHealth.deserializeBinaryFromReader);\n msg.setHealth(value);\n break;\n case 12:\n var value = new proto.toit.model.DeviceConnectionStatus;\n reader.readMessage(value,proto.toit.model.DeviceConnectionStatus.deserializeBinaryFromReader);\n msg.setConnection(value);\n break;\n case 13:\n var value = new proto.toit.model.DeviceModulesStatus;\n reader.readMessage(value,proto.toit.model.DeviceModulesStatus.deserializeBinaryFromReader);\n msg.setModules(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceStatus.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceStatus.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceStatus} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceStatus.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getRevision();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getEpoch_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 6,\n f\n );\n }\n f = message.getStateRevision();\n if (f !== 0) {\n writer.writeInt64(\n 5,\n f\n );\n }\n f = message.getUpdated();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getConfigRevision();\n if (f !== 0) {\n writer.writeInt64(\n 3,\n f\n );\n }\n f = message.getSdk();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getModel();\n if (f.length > 0) {\n writer.writeString(\n 7,\n f\n );\n }\n f = message.getConfig();\n if (f != null) {\n writer.writeMessage(\n 8,\n f,\n proto.toit.model.DeviceConfig.serializeBinaryToWriter\n );\n }\n f = message.getConnected();\n if (f) {\n writer.writeBool(\n 9,\n f\n );\n }\n f = message.getBoot();\n if (f != null) {\n writer.writeMessage(\n 10,\n f,\n proto.toit.model.DeviceBootStatus.serializeBinaryToWriter\n );\n }\n f = message.getHealth();\n if (f != null) {\n writer.writeMessage(\n 11,\n f,\n proto.toit.model.DeviceHealth.serializeBinaryToWriter\n );\n }\n f = message.getConnection();\n if (f != null) {\n writer.writeMessage(\n 12,\n f,\n proto.toit.model.DeviceConnectionStatus.serializeBinaryToWriter\n );\n }\n f = message.getModules();\n if (f != null) {\n writer.writeMessage(\n 13,\n f,\n proto.toit.model.DeviceModulesStatus.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional int64 revision = 1;\n * @return {number}\n */\nproto.toit.model.DeviceStatus.prototype.getRevision = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceStatus.prototype.setRevision = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional bytes epoch = 6;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.DeviceStatus.prototype.getEpoch = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * optional bytes epoch = 6;\n * This is a type-conversion wrapper around `getEpoch()`\n * @return {string}\n */\nproto.toit.model.DeviceStatus.prototype.getEpoch_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getEpoch()));\n};\n\n\n/**\n * optional bytes epoch = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getEpoch()`\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceStatus.prototype.getEpoch_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getEpoch()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.DeviceStatus.prototype.setEpoch = function(value) {\n jspb.Message.setProto3BytesField(this, 6, value);\n};\n\n\n/**\n * optional int64 state_revision = 5;\n * @return {number}\n */\nproto.toit.model.DeviceStatus.prototype.getStateRevision = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceStatus.prototype.setStateRevision = function(value) {\n jspb.Message.setProto3IntField(this, 5, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp updated = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceStatus.prototype.getUpdated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceStatus.prototype.setUpdated = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceStatus.prototype.clearUpdated = function() {\n this.setUpdated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceStatus.prototype.hasUpdated = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional int64 config_revision = 3;\n * @return {number}\n */\nproto.toit.model.DeviceStatus.prototype.getConfigRevision = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceStatus.prototype.setConfigRevision = function(value) {\n jspb.Message.setProto3IntField(this, 3, value);\n};\n\n\n/**\n * optional string sdk = 4;\n * @return {string}\n */\nproto.toit.model.DeviceStatus.prototype.getSdk = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceStatus.prototype.setSdk = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string model = 7;\n * @return {string}\n */\nproto.toit.model.DeviceStatus.prototype.getModel = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceStatus.prototype.setModel = function(value) {\n jspb.Message.setProto3StringField(this, 7, value);\n};\n\n\n/**\n * optional DeviceConfig config = 8;\n * @return {?proto.toit.model.DeviceConfig}\n */\nproto.toit.model.DeviceStatus.prototype.getConfig = function() {\n return /** @type{?proto.toit.model.DeviceConfig} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceConfig, 8));\n};\n\n\n/** @param {?proto.toit.model.DeviceConfig|undefined} value */\nproto.toit.model.DeviceStatus.prototype.setConfig = function(value) {\n jspb.Message.setWrapperField(this, 8, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceStatus.prototype.clearConfig = function() {\n this.setConfig(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceStatus.prototype.hasConfig = function() {\n return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional bool connected = 9;\n * @return {boolean}\n */\nproto.toit.model.DeviceStatus.prototype.getConnected = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 9, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.model.DeviceStatus.prototype.setConnected = function(value) {\n jspb.Message.setProto3BooleanField(this, 9, value);\n};\n\n\n/**\n * optional DeviceBootStatus boot = 10;\n * @return {?proto.toit.model.DeviceBootStatus}\n */\nproto.toit.model.DeviceStatus.prototype.getBoot = function() {\n return /** @type{?proto.toit.model.DeviceBootStatus} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceBootStatus, 10));\n};\n\n\n/** @param {?proto.toit.model.DeviceBootStatus|undefined} value */\nproto.toit.model.DeviceStatus.prototype.setBoot = function(value) {\n jspb.Message.setWrapperField(this, 10, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceStatus.prototype.clearBoot = function() {\n this.setBoot(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceStatus.prototype.hasBoot = function() {\n return jspb.Message.getField(this, 10) != null;\n};\n\n\n/**\n * optional DeviceHealth health = 11;\n * @return {?proto.toit.model.DeviceHealth}\n */\nproto.toit.model.DeviceStatus.prototype.getHealth = function() {\n return /** @type{?proto.toit.model.DeviceHealth} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceHealth, 11));\n};\n\n\n/** @param {?proto.toit.model.DeviceHealth|undefined} value */\nproto.toit.model.DeviceStatus.prototype.setHealth = function(value) {\n jspb.Message.setWrapperField(this, 11, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceStatus.prototype.clearHealth = function() {\n this.setHealth(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceStatus.prototype.hasHealth = function() {\n return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional DeviceConnectionStatus connection = 12;\n * @return {?proto.toit.model.DeviceConnectionStatus}\n */\nproto.toit.model.DeviceStatus.prototype.getConnection = function() {\n return /** @type{?proto.toit.model.DeviceConnectionStatus} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceConnectionStatus, 12));\n};\n\n\n/** @param {?proto.toit.model.DeviceConnectionStatus|undefined} value */\nproto.toit.model.DeviceStatus.prototype.setConnection = function(value) {\n jspb.Message.setWrapperField(this, 12, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceStatus.prototype.clearConnection = function() {\n this.setConnection(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceStatus.prototype.hasConnection = function() {\n return jspb.Message.getField(this, 12) != null;\n};\n\n\n/**\n * optional DeviceModulesStatus modules = 13;\n * @return {?proto.toit.model.DeviceModulesStatus}\n */\nproto.toit.model.DeviceStatus.prototype.getModules = function() {\n return /** @type{?proto.toit.model.DeviceModulesStatus} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceModulesStatus, 13));\n};\n\n\n/** @param {?proto.toit.model.DeviceModulesStatus|undefined} value */\nproto.toit.model.DeviceStatus.prototype.setModules = function(value) {\n jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceStatus.prototype.clearModules = function() {\n this.setModules(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceStatus.prototype.hasModules = function() {\n return jspb.Message.getField(this, 13) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceModulesStatus.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceModulesStatus.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceModulesStatus} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModulesStatus.toObject = function(includeInstance, msg) {\n var f, obj = {\n lastUpdated: (f = msg.getLastUpdated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n modules: (f = msg.getModules()) && proto.toit.model.DeviceModules.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceModulesStatus}\n */\nproto.toit.model.DeviceModulesStatus.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceModulesStatus;\n return proto.toit.model.DeviceModulesStatus.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceModulesStatus} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceModulesStatus}\n */\nproto.toit.model.DeviceModulesStatus.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setLastUpdated(value);\n break;\n case 2:\n var value = new proto.toit.model.DeviceModules;\n reader.readMessage(value,proto.toit.model.DeviceModules.deserializeBinaryFromReader);\n msg.setModules(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceModulesStatus.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceModulesStatus.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceModulesStatus} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModulesStatus.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLastUpdated();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getModules();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.DeviceModules.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional google.protobuf.Timestamp last_updated = 1;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceModulesStatus.prototype.getLastUpdated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceModulesStatus.prototype.setLastUpdated = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceModulesStatus.prototype.clearLastUpdated = function() {\n this.setLastUpdated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceModulesStatus.prototype.hasLastUpdated = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional DeviceModules modules = 2;\n * @return {?proto.toit.model.DeviceModules}\n */\nproto.toit.model.DeviceModulesStatus.prototype.getModules = function() {\n return /** @type{?proto.toit.model.DeviceModules} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceModules, 2));\n};\n\n\n/** @param {?proto.toit.model.DeviceModules|undefined} value */\nproto.toit.model.DeviceModulesStatus.prototype.setModules = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceModulesStatus.prototype.clearModules = function() {\n this.setModules(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceModulesStatus.prototype.hasModules = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceModules.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceModules.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceModules} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModules.toObject = function(includeInstance, msg) {\n var f, obj = {\n cellular: (f = msg.getCellular()) && proto.toit.model.DeviceModule.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceModules}\n */\nproto.toit.model.DeviceModules.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceModules;\n return proto.toit.model.DeviceModules.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceModules} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceModules}\n */\nproto.toit.model.DeviceModules.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.DeviceModule;\n reader.readMessage(value,proto.toit.model.DeviceModule.deserializeBinaryFromReader);\n msg.setCellular(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceModules.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceModules.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceModules} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModules.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getCellular();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.DeviceModule.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional DeviceModule cellular = 1;\n * @return {?proto.toit.model.DeviceModule}\n */\nproto.toit.model.DeviceModules.prototype.getCellular = function() {\n return /** @type{?proto.toit.model.DeviceModule} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceModule, 1));\n};\n\n\n/** @param {?proto.toit.model.DeviceModule|undefined} value */\nproto.toit.model.DeviceModules.prototype.setCellular = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceModules.prototype.clearCellular = function() {\n this.setCellular(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceModules.prototype.hasCellular = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceModule.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceModule.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceModule} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModule.toObject = function(includeInstance, msg) {\n var f, obj = {\n model: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n version: jspb.Message.getFieldWithDefault(msg, 2, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceModule}\n */\nproto.toit.model.DeviceModule.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceModule;\n return proto.toit.model.DeviceModule.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceModule} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceModule}\n */\nproto.toit.model.DeviceModule.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setModel(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setVersion(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceModule.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceModule.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceModule} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModule.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getModel();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getVersion();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string model = 1;\n * @return {string}\n */\nproto.toit.model.DeviceModule.prototype.getModel = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceModule.prototype.setModel = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string version = 2;\n * @return {string}\n */\nproto.toit.model.DeviceModule.prototype.getVersion = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceModule.prototype.setVersion = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceConnectionStatus.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceConnectionStatus.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceConnectionStatus} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceConnectionStatus.toObject = function(includeInstance, msg) {\n var f, obj = {\n index: jspb.Message.getFieldWithDefault(msg, 1, 0),\n type: jspb.Message.getFieldWithDefault(msg, 2, 0)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceConnectionStatus}\n */\nproto.toit.model.DeviceConnectionStatus.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceConnectionStatus;\n return proto.toit.model.DeviceConnectionStatus.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceConnectionStatus} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceConnectionStatus}\n */\nproto.toit.model.DeviceConnectionStatus.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setIndex(value);\n break;\n case 2:\n var value = /** @type {!proto.toit.model.DeviceConnectionType} */ (reader.readEnum());\n msg.setType(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceConnectionStatus.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceConnectionStatus.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceConnectionStatus} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceConnectionStatus.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getIndex();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional int64 index = 1;\n * @return {number}\n */\nproto.toit.model.DeviceConnectionStatus.prototype.getIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceConnectionStatus.prototype.setIndex = function(value) {\n jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional DeviceConnectionType type = 2;\n * @return {!proto.toit.model.DeviceConnectionType}\n */\nproto.toit.model.DeviceConnectionStatus.prototype.getType = function() {\n return /** @type {!proto.toit.model.DeviceConnectionType} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {!proto.toit.model.DeviceConnectionType} value */\nproto.toit.model.DeviceConnectionStatus.prototype.setType = function(value) {\n jspb.Message.setProto3EnumField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceBootStatus.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceBootStatus.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceBootStatus} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceBootStatus.toObject = function(includeInstance, msg) {\n var f, obj = {\n lastBoot: (f = msg.getLastBoot()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n inFactory: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n lastFactoryBoot: (f = msg.getLastFactoryBoot()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceBootStatus}\n */\nproto.toit.model.DeviceBootStatus.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceBootStatus;\n return proto.toit.model.DeviceBootStatus.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceBootStatus} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceBootStatus}\n */\nproto.toit.model.DeviceBootStatus.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setLastBoot(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setInFactory(value);\n break;\n case 3:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setLastFactoryBoot(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceBootStatus.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceBootStatus.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceBootStatus} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceBootStatus.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLastBoot();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getInFactory();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = message.getLastFactoryBoot();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional google.protobuf.Timestamp last_boot = 1;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceBootStatus.prototype.getLastBoot = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceBootStatus.prototype.setLastBoot = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceBootStatus.prototype.clearLastBoot = function() {\n this.setLastBoot(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceBootStatus.prototype.hasLastBoot = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool in_factory = 2;\n * @return {boolean}\n */\nproto.toit.model.DeviceBootStatus.prototype.getInFactory = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.model.DeviceBootStatus.prototype.setInFactory = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp last_factory_boot = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceBootStatus.prototype.getLastFactoryBoot = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceBootStatus.prototype.setLastFactoryBoot = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceBootStatus.prototype.clearLastFactoryBoot = function() {\n this.setLastFactoryBoot(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceBootStatus.prototype.hasLastFactoryBoot = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceHealth.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceHealth.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceHealth} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.toObject = function(includeInstance, msg) {\n var f, obj = {\n power: (f = msg.getPower()) && proto.toit.model.DeviceHealth.Power.toObject(includeInstance, f),\n batteryCurve: (f = msg.getBatteryCurve()) && proto.toit.model.DeviceHealth.BatteryCurve.toObject(includeInstance, f),\n connectivity: (f = msg.getConnectivity()) && proto.toit.model.DeviceHealth.Connectivity.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceHealth}\n */\nproto.toit.model.DeviceHealth.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceHealth;\n return proto.toit.model.DeviceHealth.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceHealth} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceHealth}\n */\nproto.toit.model.DeviceHealth.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.DeviceHealth.Power;\n reader.readMessage(value,proto.toit.model.DeviceHealth.Power.deserializeBinaryFromReader);\n msg.setPower(value);\n break;\n case 2:\n var value = new proto.toit.model.DeviceHealth.BatteryCurve;\n reader.readMessage(value,proto.toit.model.DeviceHealth.BatteryCurve.deserializeBinaryFromReader);\n msg.setBatteryCurve(value);\n break;\n case 3:\n var value = new proto.toit.model.DeviceHealth.Connectivity;\n reader.readMessage(value,proto.toit.model.DeviceHealth.Connectivity.deserializeBinaryFromReader);\n msg.setConnectivity(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceHealth.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceHealth.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceHealth} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getPower();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.DeviceHealth.Power.serializeBinaryToWriter\n );\n }\n f = message.getBatteryCurve();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.DeviceHealth.BatteryCurve.serializeBinaryToWriter\n );\n }\n f = message.getConnectivity();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.toit.model.DeviceHealth.Connectivity.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceHealth.Power.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceHealth.Power.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceHealth.Power} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Power.toObject = function(includeInstance, msg) {\n var f, obj = {\n value: (f = msg.getValue()) && proto.toit.model.DeviceHealth.Power.Value.toObject(includeInstance, f),\n lastUpdated: (f = msg.getLastUpdated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceHealth.Power}\n */\nproto.toit.model.DeviceHealth.Power.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceHealth.Power;\n return proto.toit.model.DeviceHealth.Power.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceHealth.Power} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceHealth.Power}\n */\nproto.toit.model.DeviceHealth.Power.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.DeviceHealth.Power.Value;\n reader.readMessage(value,proto.toit.model.DeviceHealth.Power.Value.deserializeBinaryFromReader);\n msg.setValue(value);\n break;\n case 2:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setLastUpdated(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceHealth.Power.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceHealth.Power.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceHealth.Power} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Power.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getValue();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.DeviceHealth.Power.Value.serializeBinaryToWriter\n );\n }\n f = message.getLastUpdated();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.model.DeviceHealth.Power.Value.oneofGroups_ = [[1,2]];\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceHealth.Power.Value.PowerCase = {\n POWER_NOT_SET: 0,\n BATTERY: 1,\n PLUGGEDIN: 2\n};\n\n/**\n * @return {proto.toit.model.DeviceHealth.Power.Value.PowerCase}\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.getPowerCase = function() {\n return /** @type {proto.toit.model.DeviceHealth.Power.Value.PowerCase} */(jspb.Message.computeOneofCase(this, proto.toit.model.DeviceHealth.Power.Value.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceHealth.Power.Value.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceHealth.Power.Value} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Power.Value.toObject = function(includeInstance, msg) {\n var f, obj = {\n battery: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n pluggedin: (f = msg.getPluggedin()) && google_protobuf_empty_pb.Empty.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceHealth.Power.Value}\n */\nproto.toit.model.DeviceHealth.Power.Value.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceHealth.Power.Value;\n return proto.toit.model.DeviceHealth.Power.Value.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceHealth.Power.Value} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceHealth.Power.Value}\n */\nproto.toit.model.DeviceHealth.Power.Value.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setBattery(value);\n break;\n case 2:\n var value = new google_protobuf_empty_pb.Empty;\n reader.readMessage(value,google_protobuf_empty_pb.Empty.deserializeBinaryFromReader);\n msg.setPluggedin(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceHealth.Power.Value.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceHealth.Power.Value} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Power.Value.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {number} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getPluggedin();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_empty_pb.Empty.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional double battery = 1;\n * @return {number}\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.getBattery = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceHealth.Power.Value.prototype.setBattery = function(value) {\n jspb.Message.setOneofField(this, 1, proto.toit.model.DeviceHealth.Power.Value.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the field making it undefined.\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.clearBattery = function() {\n jspb.Message.setOneofField(this, 1, proto.toit.model.DeviceHealth.Power.Value.oneofGroups_[0], undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.hasBattery = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional google.protobuf.Empty pluggedin = 2;\n * @return {?proto.google.protobuf.Empty}\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.getPluggedin = function() {\n return /** @type{?proto.google.protobuf.Empty} */ (\n jspb.Message.getWrapperField(this, google_protobuf_empty_pb.Empty, 2));\n};\n\n\n/** @param {?proto.google.protobuf.Empty|undefined} value */\nproto.toit.model.DeviceHealth.Power.Value.prototype.setPluggedin = function(value) {\n jspb.Message.setOneofWrapperField(this, 2, proto.toit.model.DeviceHealth.Power.Value.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.clearPluggedin = function() {\n this.setPluggedin(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.Power.Value.prototype.hasPluggedin = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Value value = 1;\n * @return {?proto.toit.model.DeviceHealth.Power.Value}\n */\nproto.toit.model.DeviceHealth.Power.prototype.getValue = function() {\n return /** @type{?proto.toit.model.DeviceHealth.Power.Value} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceHealth.Power.Value, 1));\n};\n\n\n/** @param {?proto.toit.model.DeviceHealth.Power.Value|undefined} value */\nproto.toit.model.DeviceHealth.Power.prototype.setValue = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.Power.prototype.clearValue = function() {\n this.setValue(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.Power.prototype.hasValue = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp last_updated = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceHealth.Power.prototype.getLastUpdated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceHealth.Power.prototype.setLastUpdated = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.Power.prototype.clearLastUpdated = function() {\n this.setLastUpdated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.Power.prototype.hasLastUpdated = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceHealth.BatteryCurve.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceHealth.BatteryCurve} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.BatteryCurve.toObject = function(includeInstance, msg) {\n var f, obj = {\n slope: jspb.Message.getFloatingPointFieldWithDefault(msg, 1, 0.0),\n lastUpdated: (f = msg.getLastUpdated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceHealth.BatteryCurve}\n */\nproto.toit.model.DeviceHealth.BatteryCurve.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceHealth.BatteryCurve;\n return proto.toit.model.DeviceHealth.BatteryCurve.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceHealth.BatteryCurve} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceHealth.BatteryCurve}\n */\nproto.toit.model.DeviceHealth.BatteryCurve.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setSlope(value);\n break;\n case 2:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setLastUpdated(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceHealth.BatteryCurve.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceHealth.BatteryCurve} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.BatteryCurve.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getSlope();\n if (f !== 0.0) {\n writer.writeDouble(\n 1,\n f\n );\n }\n f = message.getLastUpdated();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional double slope = 1;\n * @return {number}\n */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.getSlope = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 1, 0.0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.setSlope = function(value) {\n jspb.Message.setProto3FloatField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp last_updated = 2;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.getLastUpdated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 2));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.setLastUpdated = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.clearLastUpdated = function() {\n this.setLastUpdated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.BatteryCurve.prototype.hasLastUpdated = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.model.DeviceHealth.Connectivity.repeatedFields_ = [3];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceHealth.Connectivity.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceHealth.Connectivity} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Connectivity.toObject = function(includeInstance, msg) {\n var f, obj = {\n lastSeen: (f = msg.getLastSeen()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n connected: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n checkinsList: jspb.Message.toObjectList(msg.getCheckinsList(),\n proto.toit.model.DeviceHealth.Connectivity.Checkin.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceHealth.Connectivity}\n */\nproto.toit.model.DeviceHealth.Connectivity.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceHealth.Connectivity;\n return proto.toit.model.DeviceHealth.Connectivity.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceHealth.Connectivity} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceHealth.Connectivity}\n */\nproto.toit.model.DeviceHealth.Connectivity.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setLastSeen(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setConnected(value);\n break;\n case 3:\n var value = new proto.toit.model.DeviceHealth.Connectivity.Checkin;\n reader.readMessage(value,proto.toit.model.DeviceHealth.Connectivity.Checkin.deserializeBinaryFromReader);\n msg.addCheckins(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceHealth.Connectivity.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceHealth.Connectivity} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Connectivity.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getLastSeen();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getConnected();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = message.getCheckinsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 3,\n f,\n proto.toit.model.DeviceHealth.Connectivity.Checkin.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceHealth.Connectivity.Checkin.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceHealth.Connectivity.Checkin} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.toObject = function(includeInstance, msg) {\n var f, obj = {\n missed: jspb.Message.getBooleanFieldWithDefault(msg, 1, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceHealth.Connectivity.Checkin}\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceHealth.Connectivity.Checkin;\n return proto.toit.model.DeviceHealth.Connectivity.Checkin.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceHealth.Connectivity.Checkin} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceHealth.Connectivity.Checkin}\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setMissed(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceHealth.Connectivity.Checkin.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceHealth.Connectivity.Checkin} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getMissed();\n if (f) {\n writer.writeBool(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bool missed = 1;\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.prototype.getMissed = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.model.DeviceHealth.Connectivity.Checkin.prototype.setMissed = function(value) {\n jspb.Message.setProto3BooleanField(this, 1, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp last_seen = 1;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.getLastSeen = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceHealth.Connectivity.prototype.setLastSeen = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.clearLastSeen = function() {\n this.setLastSeen(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.hasLastSeen = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool connected = 2;\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.getConnected = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/** @param {boolean} value */\nproto.toit.model.DeviceHealth.Connectivity.prototype.setConnected = function(value) {\n jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n/**\n * repeated Checkin checkins = 3;\n * @return {!Array}\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.getCheckinsList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.model.DeviceHealth.Connectivity.Checkin, 3));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.DeviceHealth.Connectivity.prototype.setCheckinsList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 3, value);\n};\n\n\n/**\n * @param {!proto.toit.model.DeviceHealth.Connectivity.Checkin=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.DeviceHealth.Connectivity.Checkin}\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.addCheckins = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 3, opt_value, proto.toit.model.DeviceHealth.Connectivity.Checkin, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.DeviceHealth.Connectivity.prototype.clearCheckinsList = function() {\n this.setCheckinsList([]);\n};\n\n\n/**\n * optional Power power = 1;\n * @return {?proto.toit.model.DeviceHealth.Power}\n */\nproto.toit.model.DeviceHealth.prototype.getPower = function() {\n return /** @type{?proto.toit.model.DeviceHealth.Power} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceHealth.Power, 1));\n};\n\n\n/** @param {?proto.toit.model.DeviceHealth.Power|undefined} value */\nproto.toit.model.DeviceHealth.prototype.setPower = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.prototype.clearPower = function() {\n this.setPower(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.prototype.hasPower = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional BatteryCurve battery_curve = 2;\n * @return {?proto.toit.model.DeviceHealth.BatteryCurve}\n */\nproto.toit.model.DeviceHealth.prototype.getBatteryCurve = function() {\n return /** @type{?proto.toit.model.DeviceHealth.BatteryCurve} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceHealth.BatteryCurve, 2));\n};\n\n\n/** @param {?proto.toit.model.DeviceHealth.BatteryCurve|undefined} value */\nproto.toit.model.DeviceHealth.prototype.setBatteryCurve = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.prototype.clearBatteryCurve = function() {\n this.setBatteryCurve(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.prototype.hasBatteryCurve = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Connectivity connectivity = 3;\n * @return {?proto.toit.model.DeviceHealth.Connectivity}\n */\nproto.toit.model.DeviceHealth.prototype.getConnectivity = function() {\n return /** @type{?proto.toit.model.DeviceHealth.Connectivity} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceHealth.Connectivity, 3));\n};\n\n\n/** @param {?proto.toit.model.DeviceHealth.Connectivity|undefined} value */\nproto.toit.model.DeviceHealth.prototype.setConnectivity = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceHealth.prototype.clearConnectivity = function() {\n this.setConnectivity(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceHealth.prototype.hasConnectivity = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.HardwareIdentity.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.HardwareIdentity.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.HardwareIdentity} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareIdentity.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64(),\n sequenceNumber: jspb.Message.getFieldWithDefault(msg, 2, 0),\n batch: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n privateKey: msg.getPrivateKey_asB64(),\n certificate: msg.getCertificate_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.HardwareIdentity}\n */\nproto.toit.model.HardwareIdentity.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.HardwareIdentity;\n return proto.toit.model.HardwareIdentity.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.HardwareIdentity} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.HardwareIdentity}\n */\nproto.toit.model.HardwareIdentity.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setSequenceNumber(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setBatch(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setPrivateKey(value);\n break;\n case 5:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setCertificate(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareIdentity.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.HardwareIdentity.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.HardwareIdentity} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareIdentity.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getSequenceNumber();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getBatch();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getPrivateKey_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getCertificate_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareIdentity.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.model.HardwareIdentity.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareIdentity.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareIdentity.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional int64 sequence_number = 2;\n * @return {number}\n */\nproto.toit.model.HardwareIdentity.prototype.getSequenceNumber = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/** @param {number} value */\nproto.toit.model.HardwareIdentity.prototype.setSequenceNumber = function(value) {\n jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional string batch = 3;\n * @return {string}\n */\nproto.toit.model.HardwareIdentity.prototype.getBatch = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.HardwareIdentity.prototype.setBatch = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional bytes private_key = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareIdentity.prototype.getPrivateKey = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes private_key = 4;\n * This is a type-conversion wrapper around `getPrivateKey()`\n * @return {string}\n */\nproto.toit.model.HardwareIdentity.prototype.getPrivateKey_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getPrivateKey()));\n};\n\n\n/**\n * optional bytes private_key = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getPrivateKey()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareIdentity.prototype.getPrivateKey_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getPrivateKey()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareIdentity.prototype.setPrivateKey = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional bytes certificate = 5;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareIdentity.prototype.getCertificate = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/**\n * optional bytes certificate = 5;\n * This is a type-conversion wrapper around `getCertificate()`\n * @return {string}\n */\nproto.toit.model.HardwareIdentity.prototype.getCertificate_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getCertificate()));\n};\n\n\n/**\n * optional bytes certificate = 5;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getCertificate()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareIdentity.prototype.getCertificate_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getCertificate()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareIdentity.prototype.setCertificate = function(value) {\n jspb.Message.setProto3BytesField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.HardwareIdentityInfo.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.HardwareIdentityInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareIdentityInfo.toObject = function(includeInstance, msg) {\n var f, obj = {\n factorySdkVersion: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n flashedBy: msg.getFlashedBy_asB64(),\n iccid: jspb.Message.getFieldWithDefault(msg, 3, \"\"),\n chipId: jspb.Message.getFieldWithDefault(msg, 4, \"\"),\n factoryDeviceModel: jspb.Message.getFieldWithDefault(msg, 5, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.HardwareIdentityInfo}\n */\nproto.toit.model.HardwareIdentityInfo.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.HardwareIdentityInfo;\n return proto.toit.model.HardwareIdentityInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.HardwareIdentityInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.HardwareIdentityInfo}\n */\nproto.toit.model.HardwareIdentityInfo.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setFactorySdkVersion(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFlashedBy(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setIccid(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setChipId(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setFactoryDeviceModel(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.HardwareIdentityInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.HardwareIdentityInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareIdentityInfo.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFactorySdkVersion();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getFlashedBy_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getIccid();\n if (f.length > 0) {\n writer.writeString(\n 3,\n f\n );\n }\n f = message.getChipId();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n f = message.getFactoryDeviceModel();\n if (f.length > 0) {\n writer.writeString(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional string factory_sdk_version = 1;\n * @return {string}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.getFactorySdkVersion = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.HardwareIdentityInfo.prototype.setFactorySdkVersion = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bytes flashed_by = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.getFlashedBy = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes flashed_by = 2;\n * This is a type-conversion wrapper around `getFlashedBy()`\n * @return {string}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.getFlashedBy_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFlashedBy()));\n};\n\n\n/**\n * optional bytes flashed_by = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFlashedBy()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.getFlashedBy_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFlashedBy()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareIdentityInfo.prototype.setFlashedBy = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional string iccid = 3;\n * @return {string}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.getIccid = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.HardwareIdentityInfo.prototype.setIccid = function(value) {\n jspb.Message.setProto3StringField(this, 3, value);\n};\n\n\n/**\n * optional string chip_id = 4;\n * @return {string}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.getChipId = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.HardwareIdentityInfo.prototype.setChipId = function(value) {\n jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n/**\n * optional string factory_device_model = 5;\n * @return {string}\n */\nproto.toit.model.HardwareIdentityInfo.prototype.getFactoryDeviceModel = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.HardwareIdentityInfo.prototype.setFactoryDeviceModel = function(value) {\n jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.HardwareInfo.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.HardwareInfo.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.HardwareInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareInfo.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64(),\n hardwareFqdn: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n organizationId: msg.getOrganizationId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.HardwareInfo}\n */\nproto.toit.model.HardwareInfo.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.HardwareInfo;\n return proto.toit.model.HardwareInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.HardwareInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.HardwareInfo}\n */\nproto.toit.model.HardwareInfo.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setHardwareFqdn(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setOrganizationId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareInfo.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.HardwareInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.HardwareInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareInfo.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getHardwareFqdn();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getOrganizationId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareInfo.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.model.HardwareInfo.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareInfo.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareInfo.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional string hardware_fqdn = 2;\n * @return {string}\n */\nproto.toit.model.HardwareInfo.prototype.getHardwareFqdn = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.HardwareInfo.prototype.setHardwareFqdn = function(value) {\n jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareInfo.prototype.getOrganizationId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {string}\n */\nproto.toit.model.HardwareInfo.prototype.getOrganizationId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getOrganizationId()));\n};\n\n\n/**\n * optional bytes organization_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getOrganizationId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareInfo.prototype.getOrganizationId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getOrganizationId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareInfo.prototype.setOrganizationId = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.HardwareToDeviceInfo.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.HardwareToDeviceInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareToDeviceInfo.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64(),\n deviceId: msg.getDeviceId_asB64(),\n bound: (f = msg.getBound()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n unbound: (f = msg.getUnbound()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.HardwareToDeviceInfo}\n */\nproto.toit.model.HardwareToDeviceInfo.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.HardwareToDeviceInfo;\n return proto.toit.model.HardwareToDeviceInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.HardwareToDeviceInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.HardwareToDeviceInfo}\n */\nproto.toit.model.HardwareToDeviceInfo.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n case 3:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setBound(value);\n break;\n case 4:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setUnbound(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.HardwareToDeviceInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.HardwareToDeviceInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.HardwareToDeviceInfo.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getBound();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getUnbound();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareToDeviceInfo.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes device_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 2;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.HardwareToDeviceInfo.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp bound = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getBound = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.HardwareToDeviceInfo.prototype.setBound = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.clearBound = function() {\n this.setBound(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.hasBound = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp unbound = 4;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.getUnbound = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 4));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.HardwareToDeviceInfo.prototype.setUnbound = function(value) {\n jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.clearUnbound = function() {\n this.setUnbound(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.HardwareToDeviceInfo.prototype.hasUnbound = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array}\n * @const\n */\nproto.toit.model.DeviceEvent.repeatedFields_ = [8];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.toObject = function(includeInstance, msg) {\n var f, obj = {\n deviceId: msg.getDeviceId_asB64(),\n eventId: msg.getEventId_asB64(),\n created: (f = msg.getCreated()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n type: jspb.Message.getFieldWithDefault(msg, 4, 0),\n msg: jspb.Message.getFieldWithDefault(msg, 5, \"\"),\n data: msg.getData_asB64(),\n initiater: (f = msg.getInitiater()) && proto.toit.model.DeviceEvent.Initiater.toObject(includeInstance, f),\n informationList: jspb.Message.toObjectList(msg.getInformationList(),\n proto.toit.model.DeviceEvent.Info.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent}\n */\nproto.toit.model.DeviceEvent.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent;\n return proto.toit.model.DeviceEvent.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent}\n */\nproto.toit.model.DeviceEvent.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setEventId(value);\n break;\n case 3:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setCreated(value);\n break;\n case 4:\n var value = /** @type {!proto.toit.model.DeviceEvent.Type} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.setMsg(value);\n break;\n case 6:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n case 7:\n var value = new proto.toit.model.DeviceEvent.Initiater;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Initiater.deserializeBinaryFromReader);\n msg.setInitiater(value);\n break;\n case 8:\n var value = new proto.toit.model.DeviceEvent.Info;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Info.deserializeBinaryFromReader);\n msg.addInformation(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getEventId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getCreated();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 4,\n f\n );\n }\n f = message.getMsg();\n if (f.length > 0) {\n writer.writeString(\n 5,\n f\n );\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 6,\n f\n );\n }\n f = message.getInitiater();\n if (f != null) {\n writer.writeMessage(\n 7,\n f,\n proto.toit.model.DeviceEvent.Initiater.serializeBinaryToWriter\n );\n }\n f = message.getInformationList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 8,\n f,\n proto.toit.model.DeviceEvent.Info.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceEvent.Type = {\n UNKNOWN: 0,\n CONFIG_CHANGE: 1,\n STATUS_CHANGE: 2,\n NEXT_ACTION: 3,\n DEVICE_ACTION: 4,\n QUEUE_OVERFLOW: 5,\n REQUEST_FILE: 6\n};\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.model.DeviceEvent.Initiater.oneofGroups_ = [[1,2,3]];\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceEvent.Initiater.InitiaterCase = {\n INITIATER_NOT_SET: 0,\n DEVICE: 1,\n CONSOLE: 2,\n USER: 3\n};\n\n/**\n * @return {proto.toit.model.DeviceEvent.Initiater.InitiaterCase}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.getInitiaterCase = function() {\n return /** @type {proto.toit.model.DeviceEvent.Initiater.InitiaterCase} */(jspb.Message.computeOneofCase(this, proto.toit.model.DeviceEvent.Initiater.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Initiater.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Initiater} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.toObject = function(includeInstance, msg) {\n var f, obj = {\n device: (f = msg.getDevice()) && proto.toit.model.DeviceEvent.Initiater.Device.toObject(includeInstance, f),\n console: (f = msg.getConsole()) && proto.toit.model.DeviceEvent.Initiater.Console.toObject(includeInstance, f),\n user: (f = msg.getUser()) && proto.toit.model.DeviceEvent.Initiater.User.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Initiater}\n */\nproto.toit.model.DeviceEvent.Initiater.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Initiater;\n return proto.toit.model.DeviceEvent.Initiater.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Initiater} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Initiater}\n */\nproto.toit.model.DeviceEvent.Initiater.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.DeviceEvent.Initiater.Device;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Initiater.Device.deserializeBinaryFromReader);\n msg.setDevice(value);\n break;\n case 2:\n var value = new proto.toit.model.DeviceEvent.Initiater.Console;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Initiater.Console.deserializeBinaryFromReader);\n msg.setConsole(value);\n break;\n case 3:\n var value = new proto.toit.model.DeviceEvent.Initiater.User;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Initiater.User.deserializeBinaryFromReader);\n msg.setUser(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Initiater.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Initiater} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDevice();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.DeviceEvent.Initiater.Device.serializeBinaryToWriter\n );\n }\n f = message.getConsole();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.DeviceEvent.Initiater.Console.serializeBinaryToWriter\n );\n }\n f = message.getUser();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.toit.model.DeviceEvent.Initiater.User.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Initiater.Device.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Initiater.Device.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Initiater.Device} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.Device.toObject = function(includeInstance, msg) {\n var f, obj = {\n deviceId: msg.getDeviceId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Initiater.Device}\n */\nproto.toit.model.DeviceEvent.Initiater.Device.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Initiater.Device;\n return proto.toit.model.DeviceEvent.Initiater.Device.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Initiater.Device} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Initiater.Device}\n */\nproto.toit.model.DeviceEvent.Initiater.Device.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Initiater.Device.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Initiater.Device.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Initiater.Device} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.Device.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes device_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.DeviceEvent.Initiater.Device.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 1;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.model.DeviceEvent.Initiater.Device.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Initiater.Device.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.DeviceEvent.Initiater.Device.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Initiater.Console.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Initiater.Console.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Initiater.Console} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.Console.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Initiater.Console}\n */\nproto.toit.model.DeviceEvent.Initiater.Console.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Initiater.Console;\n return proto.toit.model.DeviceEvent.Initiater.Console.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Initiater.Console} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Initiater.Console}\n */\nproto.toit.model.DeviceEvent.Initiater.Console.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Initiater.Console.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Initiater.Console.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Initiater.Console} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.Console.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Initiater.User.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Initiater.User.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Initiater.User} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.User.toObject = function(includeInstance, msg) {\n var f, obj = {\n userId: msg.getUserId_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Initiater.User}\n */\nproto.toit.model.DeviceEvent.Initiater.User.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Initiater.User;\n return proto.toit.model.DeviceEvent.Initiater.User.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Initiater.User} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Initiater.User}\n */\nproto.toit.model.DeviceEvent.Initiater.User.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setUserId(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Initiater.User.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Initiater.User.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Initiater.User} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Initiater.User.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getUserId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes user_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.DeviceEvent.Initiater.User.prototype.getUserId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes user_id = 1;\n * This is a type-conversion wrapper around `getUserId()`\n * @return {string}\n */\nproto.toit.model.DeviceEvent.Initiater.User.prototype.getUserId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getUserId()));\n};\n\n\n/**\n * optional bytes user_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getUserId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Initiater.User.prototype.getUserId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getUserId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.DeviceEvent.Initiater.User.prototype.setUserId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional Device device = 1;\n * @return {?proto.toit.model.DeviceEvent.Initiater.Device}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.getDevice = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Initiater.Device} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Initiater.Device, 1));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Initiater.Device|undefined} value */\nproto.toit.model.DeviceEvent.Initiater.prototype.setDevice = function(value) {\n jspb.Message.setOneofWrapperField(this, 1, proto.toit.model.DeviceEvent.Initiater.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.clearDevice = function() {\n this.setDevice(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.hasDevice = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Console console = 2;\n * @return {?proto.toit.model.DeviceEvent.Initiater.Console}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.getConsole = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Initiater.Console} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Initiater.Console, 2));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Initiater.Console|undefined} value */\nproto.toit.model.DeviceEvent.Initiater.prototype.setConsole = function(value) {\n jspb.Message.setOneofWrapperField(this, 2, proto.toit.model.DeviceEvent.Initiater.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.clearConsole = function() {\n this.setConsole(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.hasConsole = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional User user = 3;\n * @return {?proto.toit.model.DeviceEvent.Initiater.User}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.getUser = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Initiater.User} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Initiater.User, 3));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Initiater.User|undefined} value */\nproto.toit.model.DeviceEvent.Initiater.prototype.setUser = function(value) {\n jspb.Message.setOneofWrapperField(this, 3, proto.toit.model.DeviceEvent.Initiater.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.clearUser = function() {\n this.setUser(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Initiater.prototype.hasUser = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Info.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Info.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Info} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.toObject = function(includeInstance, msg) {\n var f, obj = {\n key: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n value: (f = msg.getValue()) && proto.toit.model.DeviceEvent.Info.Value.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Info}\n */\nproto.toit.model.DeviceEvent.Info.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Info;\n return proto.toit.model.DeviceEvent.Info.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Info} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Info}\n */\nproto.toit.model.DeviceEvent.Info.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setKey(value);\n break;\n case 2:\n var value = new proto.toit.model.DeviceEvent.Info.Value;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Info.Value.deserializeBinaryFromReader);\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Info.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Info.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Info} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getKey();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getValue();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.DeviceEvent.Info.Value.serializeBinaryToWriter\n );\n }\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.model.DeviceEvent.Info.Value.oneofGroups_ = [[1,2,3]];\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceEvent.Info.Value.ValueCase = {\n VALUE_NOT_SET: 0,\n PRIMITIVE: 1,\n DIFF: 2,\n ERROR: 3\n};\n\n/**\n * @return {proto.toit.model.DeviceEvent.Info.Value.ValueCase}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.getValueCase = function() {\n return /** @type {proto.toit.model.DeviceEvent.Info.Value.ValueCase} */(jspb.Message.computeOneofCase(this, proto.toit.model.DeviceEvent.Info.Value.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Info.Value.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Info.Value} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.toObject = function(includeInstance, msg) {\n var f, obj = {\n primitive: (f = msg.getPrimitive()) && proto.toit.model.DeviceEvent.Info.Value.Primitive.toObject(includeInstance, f),\n diff: (f = msg.getDiff()) && proto.toit.model.DeviceEvent.Info.Value.Diff.toObject(includeInstance, f),\n error: (f = msg.getError()) && proto.toit.model.DeviceEvent.Info.Value.Error.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Info.Value}\n */\nproto.toit.model.DeviceEvent.Info.Value.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Info.Value;\n return proto.toit.model.DeviceEvent.Info.Value.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Info.Value} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Info.Value}\n */\nproto.toit.model.DeviceEvent.Info.Value.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.DeviceEvent.Info.Value.Primitive;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Info.Value.Primitive.deserializeBinaryFromReader);\n msg.setPrimitive(value);\n break;\n case 2:\n var value = new proto.toit.model.DeviceEvent.Info.Value.Diff;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Info.Value.Diff.deserializeBinaryFromReader);\n msg.setDiff(value);\n break;\n case 3:\n var value = new proto.toit.model.DeviceEvent.Info.Value.Error;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Info.Value.Error.deserializeBinaryFromReader);\n msg.setError(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Info.Value.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Info.Value} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getPrimitive();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.DeviceEvent.Info.Value.Primitive.serializeBinaryToWriter\n );\n }\n f = message.getDiff();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.DeviceEvent.Info.Value.Diff.serializeBinaryToWriter\n );\n }\n f = message.getError();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.toit.model.DeviceEvent.Info.Value.Error.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Info.Value.Primitive.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Primitive} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.toObject = function(includeInstance, msg) {\n var f, obj = {\n type: jspb.Message.getFieldWithDefault(msg, 1, 0),\n value: msg.getValue_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Info.Value.Primitive}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Info.Value.Primitive;\n return proto.toit.model.DeviceEvent.Info.Value.Primitive.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Primitive} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Info.Value.Primitive}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!proto.toit.model.DeviceEvent.Info.Value.Primitive.Type} */ (reader.readEnum());\n msg.setType(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Info.Value.Primitive.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Primitive} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getType();\n if (f !== 0.0) {\n writer.writeEnum(\n 1,\n f\n );\n }\n f = message.getValue_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.Type = {\n INVALID: 0,\n JSON: 1,\n STRING: 2\n};\n\n/**\n * optional Type type = 1;\n * @return {!proto.toit.model.DeviceEvent.Info.Value.Primitive.Type}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.getType = function() {\n return /** @type {!proto.toit.model.DeviceEvent.Info.Value.Primitive.Type} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/** @param {!proto.toit.model.DeviceEvent.Info.Value.Primitive.Type} value */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.setType = function(value) {\n jspb.Message.setProto3EnumField(this, 1, value);\n};\n\n\n/**\n * optional bytes value = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.getValue = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes value = 2;\n * This is a type-conversion wrapper around `getValue()`\n * @return {string}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.getValue_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getValue()));\n};\n\n\n/**\n * optional bytes value = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getValue()`\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.getValue_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getValue()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.DeviceEvent.Info.Value.Primitive.prototype.setValue = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Info.Value.Diff.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Diff} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.toObject = function(includeInstance, msg) {\n var f, obj = {\n from: (f = msg.getFrom()) && proto.toit.model.DeviceEvent.Info.Value.Primitive.toObject(includeInstance, f),\n to: (f = msg.getTo()) && proto.toit.model.DeviceEvent.Info.Value.Primitive.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Info.Value.Diff}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Info.Value.Diff;\n return proto.toit.model.DeviceEvent.Info.Value.Diff.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Diff} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Info.Value.Diff}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.DeviceEvent.Info.Value.Primitive;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Info.Value.Primitive.deserializeBinaryFromReader);\n msg.setFrom(value);\n break;\n case 2:\n var value = new proto.toit.model.DeviceEvent.Info.Value.Primitive;\n reader.readMessage(value,proto.toit.model.DeviceEvent.Info.Value.Primitive.deserializeBinaryFromReader);\n msg.setTo(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Info.Value.Diff.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Diff} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFrom();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.DeviceEvent.Info.Value.Primitive.serializeBinaryToWriter\n );\n }\n f = message.getTo();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.DeviceEvent.Info.Value.Primitive.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional Primitive from = 1;\n * @return {?proto.toit.model.DeviceEvent.Info.Value.Primitive}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.getFrom = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Info.Value.Primitive} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Info.Value.Primitive, 1));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Info.Value.Primitive|undefined} value */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.setFrom = function(value) {\n jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.clearFrom = function() {\n this.setFrom(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.hasFrom = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Primitive to = 2;\n * @return {?proto.toit.model.DeviceEvent.Info.Value.Primitive}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.getTo = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Info.Value.Primitive} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Info.Value.Primitive, 2));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Info.Value.Primitive|undefined} value */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.setTo = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.clearTo = function() {\n this.setTo(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Info.Value.Diff.prototype.hasTo = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceEvent.Info.Value.Error.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceEvent.Info.Value.Error.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Error} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.Error.toObject = function(includeInstance, msg) {\n var f, obj = {\n error: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceEvent.Info.Value.Error}\n */\nproto.toit.model.DeviceEvent.Info.Value.Error.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceEvent.Info.Value.Error;\n return proto.toit.model.DeviceEvent.Info.Value.Error.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Error} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceEvent.Info.Value.Error}\n */\nproto.toit.model.DeviceEvent.Info.Value.Error.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setError(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.Info.Value.Error.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceEvent.Info.Value.Error.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceEvent.Info.Value.Error} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceEvent.Info.Value.Error.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getError();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string error = 1;\n * @return {string}\n */\nproto.toit.model.DeviceEvent.Info.Value.Error.prototype.getError = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceEvent.Info.Value.Error.prototype.setError = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional Primitive primitive = 1;\n * @return {?proto.toit.model.DeviceEvent.Info.Value.Primitive}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.getPrimitive = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Info.Value.Primitive} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Info.Value.Primitive, 1));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Info.Value.Primitive|undefined} value */\nproto.toit.model.DeviceEvent.Info.Value.prototype.setPrimitive = function(value) {\n jspb.Message.setOneofWrapperField(this, 1, proto.toit.model.DeviceEvent.Info.Value.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.clearPrimitive = function() {\n this.setPrimitive(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.hasPrimitive = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Diff diff = 2;\n * @return {?proto.toit.model.DeviceEvent.Info.Value.Diff}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.getDiff = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Info.Value.Diff} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Info.Value.Diff, 2));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Info.Value.Diff|undefined} value */\nproto.toit.model.DeviceEvent.Info.Value.prototype.setDiff = function(value) {\n jspb.Message.setOneofWrapperField(this, 2, proto.toit.model.DeviceEvent.Info.Value.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.clearDiff = function() {\n this.setDiff(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.hasDiff = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Error error = 3;\n * @return {?proto.toit.model.DeviceEvent.Info.Value.Error}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.getError = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Info.Value.Error} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Info.Value.Error, 3));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Info.Value.Error|undefined} value */\nproto.toit.model.DeviceEvent.Info.Value.prototype.setError = function(value) {\n jspb.Message.setOneofWrapperField(this, 3, proto.toit.model.DeviceEvent.Info.Value.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.clearError = function() {\n this.setError(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Info.Value.prototype.hasError = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional string key = 1;\n * @return {string}\n */\nproto.toit.model.DeviceEvent.Info.prototype.getKey = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceEvent.Info.prototype.setKey = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional Value value = 2;\n * @return {?proto.toit.model.DeviceEvent.Info.Value}\n */\nproto.toit.model.DeviceEvent.Info.prototype.getValue = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Info.Value} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Info.Value, 2));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Info.Value|undefined} value */\nproto.toit.model.DeviceEvent.Info.prototype.setValue = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.Info.prototype.clearValue = function() {\n this.setValue(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.Info.prototype.hasValue = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional bytes device_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.DeviceEvent.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 1;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.model.DeviceEvent.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.DeviceEvent.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes event_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.DeviceEvent.prototype.getEventId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes event_id = 2;\n * This is a type-conversion wrapper around `getEventId()`\n * @return {string}\n */\nproto.toit.model.DeviceEvent.prototype.getEventId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getEventId()));\n};\n\n\n/**\n * optional bytes event_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getEventId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.prototype.getEventId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getEventId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.DeviceEvent.prototype.setEventId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp created = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.DeviceEvent.prototype.getCreated = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.DeviceEvent.prototype.setCreated = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.prototype.clearCreated = function() {\n this.setCreated(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.prototype.hasCreated = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Type type = 4;\n * @return {!proto.toit.model.DeviceEvent.Type}\n */\nproto.toit.model.DeviceEvent.prototype.getType = function() {\n return /** @type {!proto.toit.model.DeviceEvent.Type} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/** @param {!proto.toit.model.DeviceEvent.Type} value */\nproto.toit.model.DeviceEvent.prototype.setType = function(value) {\n jspb.Message.setProto3EnumField(this, 4, value);\n};\n\n\n/**\n * optional string msg = 5;\n * @return {string}\n */\nproto.toit.model.DeviceEvent.prototype.getMsg = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.DeviceEvent.prototype.setMsg = function(value) {\n jspb.Message.setProto3StringField(this, 5, value);\n};\n\n\n/**\n * optional bytes data = 6;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.DeviceEvent.prototype.getData = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 6, \"\"));\n};\n\n\n/**\n * optional bytes data = 6;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nproto.toit.model.DeviceEvent.prototype.getData_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getData()));\n};\n\n\n/**\n * optional bytes data = 6;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceEvent.prototype.getData_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getData()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.DeviceEvent.prototype.setData = function(value) {\n jspb.Message.setProto3BytesField(this, 6, value);\n};\n\n\n/**\n * optional Initiater initiater = 7;\n * @return {?proto.toit.model.DeviceEvent.Initiater}\n */\nproto.toit.model.DeviceEvent.prototype.getInitiater = function() {\n return /** @type{?proto.toit.model.DeviceEvent.Initiater} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.DeviceEvent.Initiater, 7));\n};\n\n\n/** @param {?proto.toit.model.DeviceEvent.Initiater|undefined} value */\nproto.toit.model.DeviceEvent.prototype.setInitiater = function(value) {\n jspb.Message.setWrapperField(this, 7, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.DeviceEvent.prototype.clearInitiater = function() {\n this.setInitiater(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.DeviceEvent.prototype.hasInitiater = function() {\n return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * repeated Info information = 8;\n * @return {!Array}\n */\nproto.toit.model.DeviceEvent.prototype.getInformationList = function() {\n return /** @type{!Array} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.toit.model.DeviceEvent.Info, 8));\n};\n\n\n/** @param {!Array} value */\nproto.toit.model.DeviceEvent.prototype.setInformationList = function(value) {\n jspb.Message.setRepeatedWrapperField(this, 8, value);\n};\n\n\n/**\n * @param {!proto.toit.model.DeviceEvent.Info=} opt_value\n * @param {number=} opt_index\n * @return {!proto.toit.model.DeviceEvent.Info}\n */\nproto.toit.model.DeviceEvent.prototype.addInformation = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.toit.model.DeviceEvent.Info, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n */\nproto.toit.model.DeviceEvent.prototype.clearInformationList = function() {\n this.setInformationList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.DeviceModelSettings.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.DeviceModelSettings.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.DeviceModelSettings} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModelSettings.toObject = function(includeInstance, msg) {\n var f, obj = {\n parametersMap: (f = msg.getParametersMap()) ? f.toObject(includeInstance, undefined) : []\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.DeviceModelSettings}\n */\nproto.toit.model.DeviceModelSettings.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.DeviceModelSettings;\n return proto.toit.model.DeviceModelSettings.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.DeviceModelSettings} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.DeviceModelSettings}\n */\nproto.toit.model.DeviceModelSettings.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = msg.getParametersMap();\n reader.readMessage(value, function(message, reader) {\n jspb.Map.deserializeBinary(message, reader, jspb.BinaryReader.prototype.readString, jspb.BinaryReader.prototype.readInt32, null, \"\");\n });\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.DeviceModelSettings.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.DeviceModelSettings.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.DeviceModelSettings} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.DeviceModelSettings.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getParametersMap(true);\n if (f && f.getLength() > 0) {\n f.serializeBinary(1, writer, jspb.BinaryWriter.prototype.writeString, jspb.BinaryWriter.prototype.writeInt32);\n }\n};\n\n\n/**\n * map parameters = 1;\n * @param {boolean=} opt_noLazyCreate Do not create the map if\n * empty, instead returning `undefined`\n * @return {!jspb.Map}\n */\nproto.toit.model.DeviceModelSettings.prototype.getParametersMap = function(opt_noLazyCreate) {\n return /** @type {!jspb.Map} */ (\n jspb.Message.getMapField(this, 1, opt_noLazyCreate,\n null));\n};\n\n\n/**\n * Clears values from the map. The map will be non-null.\n */\nproto.toit.model.DeviceModelSettings.prototype.clearParametersMap = function() {\n this.getParametersMap().clear();\n};\n\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceConnectionType = {\n DEVICE_CONNECTION_TYPE_UNKNOWN: 0,\n DEVICE_CONNECTION_TYPE_WIFI: 1,\n DEVICE_CONNECTION_TYPE_NBIOT: 2,\n DEVICE_CONNECTION_TYPE_OS: 3\n};\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceChangeType = {\n DEVICE_CHANGE_UNKNOWN: 0,\n DEVICE_CHANGE_ADDED: 1,\n DEVICE_CHANGE_DELETED: 2,\n DEVICE_CHANGE_CHANGED: 3,\n DEVICE_CHANGE_HEARTBEAT: 4,\n DEVICE_CHANGE_CONNECTED: 5,\n DEVICE_CHANGE_DISCONNECTED: 6\n};\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceSessionChangeType = {\n UNKNOWN_TYPE: 0,\n CONNECTED: 1,\n DISCONNECTED: 2\n};\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceAction = {\n DEVICE_ACTION_UNKNOWN: 0,\n DEVICE_ACTION_NOP: 1,\n DEVICE_ACTION_REBOOT: 2,\n DEVICE_ACTION_NEW_EPOCH: 3,\n DEVICE_ACTION_REPORT_CONFIG: 4,\n DEVICE_ACTION_FACTORY_PROMOTE: 5,\n DEVICE_ACTION_UPDATE_CONFIG: 6,\n DEVICE_ACTION_UPDATE_FIRMWARE: 7,\n DEVICE_ACTION_FACTORY_RESET: 8,\n DEVICE_ACTION_RECONCILE: 9,\n DEVICE_ACTION_UPDATE_PARTIAL_FIRMWARE: 10,\n DEVICE_ACTION_REPORT_MODULES: 11,\n DEVICE_ACTION_UPDATE_MODULE_CELLULAR: 12\n};\n\n/**\n * @enum {number}\n */\nproto.toit.model.DeviceModuleType = {\n UNKNOWN: 0,\n CELLULAR: 1\n};\n\ngoog.object.extend(exports, proto.toit.model);\n","/* eslint-disable */\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global = Function('return this')();\n\nvar google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js');\ngoog.object.extend(proto, google_protobuf_timestamp_pb);\ngoog.exportSymbol('proto.toit.model.pubsub.Envelope', null, global);\ngoog.exportSymbol('proto.toit.model.pubsub.Message', null, global);\ngoog.exportSymbol('proto.toit.model.pubsub.Publisher', null, global);\ngoog.exportSymbol('proto.toit.model.pubsub.Publisher.Device', null, global);\ngoog.exportSymbol('proto.toit.model.pubsub.Publisher.External', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.pubsub.Envelope = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.pubsub.Envelope, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.pubsub.Envelope.displayName = 'proto.toit.model.pubsub.Envelope';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.pubsub.Publisher = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.toit.model.pubsub.Publisher.oneofGroups_);\n};\ngoog.inherits(proto.toit.model.pubsub.Publisher, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.pubsub.Publisher.displayName = 'proto.toit.model.pubsub.Publisher';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.pubsub.Publisher.External = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.pubsub.Publisher.External, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.pubsub.Publisher.External.displayName = 'proto.toit.model.pubsub.Publisher.External';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.pubsub.Publisher.Device = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.pubsub.Publisher.Device, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.pubsub.Publisher.Device.displayName = 'proto.toit.model.pubsub.Publisher.Device';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.toit.model.pubsub.Message = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.toit.model.pubsub.Message, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.toit.model.pubsub.Message.displayName = 'proto.toit.model.pubsub.Message';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.pubsub.Envelope.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.pubsub.Envelope.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.pubsub.Envelope} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Envelope.toObject = function(includeInstance, msg) {\n var f, obj = {\n id: msg.getId_asB64(),\n message: (f = msg.getMessage()) && proto.toit.model.pubsub.Message.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.pubsub.Envelope}\n */\nproto.toit.model.pubsub.Envelope.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.pubsub.Envelope;\n return proto.toit.model.pubsub.Envelope.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.pubsub.Envelope} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.pubsub.Envelope}\n */\nproto.toit.model.pubsub.Envelope.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setId(value);\n break;\n case 2:\n var value = new proto.toit.model.pubsub.Message;\n reader.readMessage(value,proto.toit.model.pubsub.Message.deserializeBinaryFromReader);\n msg.setMessage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Envelope.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.pubsub.Envelope.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.pubsub.Envelope} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Envelope.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getMessage();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.pubsub.Message.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.pubsub.Envelope.prototype.getId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes id = 1;\n * This is a type-conversion wrapper around `getId()`\n * @return {string}\n */\nproto.toit.model.pubsub.Envelope.prototype.getId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getId()));\n};\n\n\n/**\n * optional bytes id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Envelope.prototype.getId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.pubsub.Envelope.prototype.setId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional Message message = 2;\n * @return {?proto.toit.model.pubsub.Message}\n */\nproto.toit.model.pubsub.Envelope.prototype.getMessage = function() {\n return /** @type{?proto.toit.model.pubsub.Message} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.pubsub.Message, 2));\n};\n\n\n/** @param {?proto.toit.model.pubsub.Message|undefined} value */\nproto.toit.model.pubsub.Envelope.prototype.setMessage = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.pubsub.Envelope.prototype.clearMessage = function() {\n this.setMessage(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.pubsub.Envelope.prototype.hasMessage = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array>}\n * @const\n */\nproto.toit.model.pubsub.Publisher.oneofGroups_ = [[1,2]];\n\n/**\n * @enum {number}\n */\nproto.toit.model.pubsub.Publisher.PublisherCase = {\n PUBLISHER_NOT_SET: 0,\n DEVICE: 1,\n EXTERNAL: 2\n};\n\n/**\n * @return {proto.toit.model.pubsub.Publisher.PublisherCase}\n */\nproto.toit.model.pubsub.Publisher.prototype.getPublisherCase = function() {\n return /** @type {proto.toit.model.pubsub.Publisher.PublisherCase} */(jspb.Message.computeOneofCase(this, proto.toit.model.pubsub.Publisher.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.pubsub.Publisher.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.pubsub.Publisher.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.pubsub.Publisher} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Publisher.toObject = function(includeInstance, msg) {\n var f, obj = {\n device: (f = msg.getDevice()) && proto.toit.model.pubsub.Publisher.Device.toObject(includeInstance, f),\n external: (f = msg.getExternal()) && proto.toit.model.pubsub.Publisher.External.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.pubsub.Publisher}\n */\nproto.toit.model.pubsub.Publisher.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.pubsub.Publisher;\n return proto.toit.model.pubsub.Publisher.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.pubsub.Publisher} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.pubsub.Publisher}\n */\nproto.toit.model.pubsub.Publisher.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.toit.model.pubsub.Publisher.Device;\n reader.readMessage(value,proto.toit.model.pubsub.Publisher.Device.deserializeBinaryFromReader);\n msg.setDevice(value);\n break;\n case 2:\n var value = new proto.toit.model.pubsub.Publisher.External;\n reader.readMessage(value,proto.toit.model.pubsub.Publisher.External.deserializeBinaryFromReader);\n msg.setExternal(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Publisher.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.pubsub.Publisher.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.pubsub.Publisher} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Publisher.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getDevice();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.toit.model.pubsub.Publisher.Device.serializeBinaryToWriter\n );\n }\n f = message.getExternal();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.pubsub.Publisher.External.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.pubsub.Publisher.External.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.pubsub.Publisher.External.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.pubsub.Publisher.External} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Publisher.External.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.pubsub.Publisher.External}\n */\nproto.toit.model.pubsub.Publisher.External.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.pubsub.Publisher.External;\n return proto.toit.model.pubsub.Publisher.External.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.pubsub.Publisher.External} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.pubsub.Publisher.External}\n */\nproto.toit.model.pubsub.Publisher.External.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Publisher.External.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.pubsub.Publisher.External.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.pubsub.Publisher.External} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Publisher.External.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.toit.model.pubsub.Publisher.External.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.pubsub.Publisher.External.prototype.setName = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.pubsub.Publisher.Device.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.pubsub.Publisher.Device} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Publisher.Device.toObject = function(includeInstance, msg) {\n var f, obj = {\n hardwareId: msg.getHardwareId_asB64(),\n deviceId: msg.getDeviceId_asB64(),\n eventId: msg.getEventId_asB64(),\n jobId: msg.getJobId_asB64(),\n writtenAt: (f = msg.getWrittenAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.pubsub.Publisher.Device}\n */\nproto.toit.model.pubsub.Publisher.Device.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.pubsub.Publisher.Device;\n return proto.toit.model.pubsub.Publisher.Device.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.pubsub.Publisher.Device} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.pubsub.Publisher.Device}\n */\nproto.toit.model.pubsub.Publisher.Device.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setHardwareId(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setDeviceId(value);\n break;\n case 3:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setEventId(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setJobId(value);\n break;\n case 5:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setWrittenAt(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.pubsub.Publisher.Device.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.pubsub.Publisher.Device} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Publisher.Device.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHardwareId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = message.getDeviceId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n f = message.getEventId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 3,\n f\n );\n }\n f = message.getJobId_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n f = message.getWrittenAt();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getHardwareId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {string}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getHardwareId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getHardwareId()));\n};\n\n\n/**\n * optional bytes hardware_id = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getHardwareId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getHardwareId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getHardwareId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.pubsub.Publisher.Device.prototype.setHardwareId = function(value) {\n jspb.Message.setProto3BytesField(this, 1, value);\n};\n\n\n/**\n * optional bytes device_id = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getDeviceId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes device_id = 2;\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {string}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getDeviceId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getDeviceId()));\n};\n\n\n/**\n * optional bytes device_id = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getDeviceId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getDeviceId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getDeviceId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.pubsub.Publisher.Device.prototype.setDeviceId = function(value) {\n jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\n/**\n * optional bytes event_id = 3;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getEventId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * optional bytes event_id = 3;\n * This is a type-conversion wrapper around `getEventId()`\n * @return {string}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getEventId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getEventId()));\n};\n\n\n/**\n * optional bytes event_id = 3;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getEventId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getEventId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getEventId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.pubsub.Publisher.Device.prototype.setEventId = function(value) {\n jspb.Message.setProto3BytesField(this, 3, value);\n};\n\n\n/**\n * optional bytes job_id = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getJobId = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes job_id = 4;\n * This is a type-conversion wrapper around `getJobId()`\n * @return {string}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getJobId_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getJobId()));\n};\n\n\n/**\n * optional bytes job_id = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getJobId()`\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getJobId_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getJobId()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.pubsub.Publisher.Device.prototype.setJobId = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\n/**\n * optional google.protobuf.Timestamp written_at = 5;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.getWrittenAt = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 5));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.pubsub.Publisher.Device.prototype.setWrittenAt = function(value) {\n jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.clearWrittenAt = function() {\n this.setWrittenAt(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.pubsub.Publisher.Device.prototype.hasWrittenAt = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n/**\n * optional Device device = 1;\n * @return {?proto.toit.model.pubsub.Publisher.Device}\n */\nproto.toit.model.pubsub.Publisher.prototype.getDevice = function() {\n return /** @type{?proto.toit.model.pubsub.Publisher.Device} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.pubsub.Publisher.Device, 1));\n};\n\n\n/** @param {?proto.toit.model.pubsub.Publisher.Device|undefined} value */\nproto.toit.model.pubsub.Publisher.prototype.setDevice = function(value) {\n jspb.Message.setOneofWrapperField(this, 1, proto.toit.model.pubsub.Publisher.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.pubsub.Publisher.prototype.clearDevice = function() {\n this.setDevice(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.pubsub.Publisher.prototype.hasDevice = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional External external = 2;\n * @return {?proto.toit.model.pubsub.Publisher.External}\n */\nproto.toit.model.pubsub.Publisher.prototype.getExternal = function() {\n return /** @type{?proto.toit.model.pubsub.Publisher.External} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.pubsub.Publisher.External, 2));\n};\n\n\n/** @param {?proto.toit.model.pubsub.Publisher.External|undefined} value */\nproto.toit.model.pubsub.Publisher.prototype.setExternal = function(value) {\n jspb.Message.setOneofWrapperField(this, 2, proto.toit.model.pubsub.Publisher.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.pubsub.Publisher.prototype.clearExternal = function() {\n this.setExternal(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.pubsub.Publisher.prototype.hasExternal = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.toit.model.pubsub.Message.prototype.toObject = function(opt_includeInstance) {\n return proto.toit.model.pubsub.Message.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.toit.model.pubsub.Message} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Message.toObject = function(includeInstance, msg) {\n var f, obj = {\n topic: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n publisher: (f = msg.getPublisher()) && proto.toit.model.pubsub.Publisher.toObject(includeInstance, f),\n createdAt: (f = msg.getCreatedAt()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f),\n data: msg.getData_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.toit.model.pubsub.Message}\n */\nproto.toit.model.pubsub.Message.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.toit.model.pubsub.Message;\n return proto.toit.model.pubsub.Message.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.toit.model.pubsub.Message} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.toit.model.pubsub.Message}\n */\nproto.toit.model.pubsub.Message.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setTopic(value);\n break;\n case 2:\n var value = new proto.toit.model.pubsub.Publisher;\n reader.readMessage(value,proto.toit.model.pubsub.Publisher.deserializeBinaryFromReader);\n msg.setPublisher(value);\n break;\n case 3:\n var value = new google_protobuf_timestamp_pb.Timestamp;\n reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader);\n msg.setCreatedAt(value);\n break;\n case 4:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setData(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Message.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.toit.model.pubsub.Message.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.toit.model.pubsub.Message} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.toit.model.pubsub.Message.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTopic();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getPublisher();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.toit.model.pubsub.Publisher.serializeBinaryToWriter\n );\n }\n f = message.getCreatedAt();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter\n );\n }\n f = message.getData_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional string topic = 1;\n * @return {string}\n */\nproto.toit.model.pubsub.Message.prototype.getTopic = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/** @param {string} value */\nproto.toit.model.pubsub.Message.prototype.setTopic = function(value) {\n jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional Publisher publisher = 2;\n * @return {?proto.toit.model.pubsub.Publisher}\n */\nproto.toit.model.pubsub.Message.prototype.getPublisher = function() {\n return /** @type{?proto.toit.model.pubsub.Publisher} */ (\n jspb.Message.getWrapperField(this, proto.toit.model.pubsub.Publisher, 2));\n};\n\n\n/** @param {?proto.toit.model.pubsub.Publisher|undefined} value */\nproto.toit.model.pubsub.Message.prototype.setPublisher = function(value) {\n jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.pubsub.Message.prototype.clearPublisher = function() {\n this.setPublisher(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.pubsub.Message.prototype.hasPublisher = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional google.protobuf.Timestamp created_at = 3;\n * @return {?proto.google.protobuf.Timestamp}\n */\nproto.toit.model.pubsub.Message.prototype.getCreatedAt = function() {\n return /** @type{?proto.google.protobuf.Timestamp} */ (\n jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 3));\n};\n\n\n/** @param {?proto.google.protobuf.Timestamp|undefined} value */\nproto.toit.model.pubsub.Message.prototype.setCreatedAt = function(value) {\n jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n */\nproto.toit.model.pubsub.Message.prototype.clearCreatedAt = function() {\n this.setCreatedAt(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.toit.model.pubsub.Message.prototype.hasCreatedAt = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional bytes data = 4;\n * @return {!(string|Uint8Array)}\n */\nproto.toit.model.pubsub.Message.prototype.getData = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * optional bytes data = 4;\n * This is a type-conversion wrapper around `getData()`\n * @return {string}\n */\nproto.toit.model.pubsub.Message.prototype.getData_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getData()));\n};\n\n\n/**\n * optional bytes data = 4;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getData()`\n * @return {!Uint8Array}\n */\nproto.toit.model.pubsub.Message.prototype.getData_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getData()));\n};\n\n\n/** @param {!(string|Uint8Array)} value */\nproto.toit.model.pubsub.Message.prototype.setData = function(value) {\n jspb.Message.setProto3BytesField(this, 4, value);\n};\n\n\ngoog.object.extend(exports, proto.toit.model.pubsub);\n","import { createMuiTheme } from \"@material-ui/core\";\n\nexport const white = \"#ffffff\";\nexport const backgroundGray = \"#fbfbfb\";\nexport const dividerGrey = \"#d9d9d9\";\nexport const black = \"#000000\";\nexport const toitGreen = \"#BDDCD8\";\n\nexport const selected = \"#272D3D\";\nexport const lightGray = \"#C4C4C4\";\n\n// Note! If the theme colors change, the color placeholder in ../pkg/emailprovider/ must be manually updated\n\nconst theme = createMuiTheme({\n palette: {\n type: \"light\",\n primary: {\n main: black,\n light: white,\n dark: black,\n },\n secondary: {\n main: white,\n light: white,\n dark: black,\n },\n },\n typography: {\n fontFamily: [\"Roboto\"].join(\",\"),\n body1: {\n fontSize: \"0.85rem\",\n },\n body2: {\n fontSize: \"0.80rem\",\n },\n h1: {\n fontFamily: [\"ClashDisplay-Medium\"].join(\",\"),\n fontSize: \"2.5rem\",\n },\n h2: {\n fontFamily: [\"ClashDisplay-Medium\"].join(\",\"),\n fontSize: \"1.5rem\",\n },\n h3: {\n fontFamily: [\"Roboto\"].join(\",\"),\n },\n h4: {\n fontFamily: [\"Roboto\"].join(\",\"),\n },\n h5: {\n fontFamily: [\"Roboto\"].join(\",\"),\n fontSize: \"1.25rem\",\n },\n h6: {\n fontFamily: [\"Roboto\"].join(\",\"),\n padding: 0.5,\n fontSize: \"1rem\",\n },\n },\n overrides: {\n MuiButton: {\n root: {\n textTransform: \"none\",\n boxShadow: \"none\",\n },\n outlined: {\n borderColor: black,\n boxSizing: \"border-box\",\n color: black,\n \"&:hover\": {\n borderColor: black,\n },\n backgroundColor: white,\n },\n contained: {\n backgroundColor: black,\n color: white,\n \"&:hover\": {\n backgroundColor: black,\n boxShadow: \"none\",\n },\n \"&:disabled\": {\n backgroundColor: lightGray,\n },\n boxShadow: \"none\",\n },\n },\n },\n});\n\nexport default theme;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.5524 15.8213V4.09266H47.9357V2.10718H34.9585V4.09266H40.3623V15.8213H42.5524Z\",\n fill: \"black\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.3676 16.026C53.7654 16.026 56.0374 13.8768 56.0374 10.745C56.0374 7.57236 53.7654 5.4436 50.3676 5.4436C46.9902 5.4436 44.7182 7.57236 44.7182 10.745C44.7182 13.8768 46.9902 16.026 50.3676 16.026ZM50.3676 14.061C47.9113 14.061 46.8879 12.8943 46.8879 10.745C46.8879 8.57533 47.9113 7.38814 50.3676 7.38814C52.8443 7.38814 53.8677 8.57533 53.8677 10.745C53.8677 12.8943 52.8443 14.061 50.3676 14.061Z\",\n fill: \"black\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M60.5663 4.46109V2.10718H58.3557V4.46109H60.5663ZM60.5663 15.8213V5.64829H58.3557V15.8213H60.5663Z\",\n fill: \"black\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.0002 15.8213V13.8358H68.158C66.8889 13.8358 66.3158 13.5083 66.3158 12.2597V7.49048H70.0002V5.64829H66.3158V2.10718H64.1256V5.64829H62.4062V7.49048H64.1256V12.3825C64.1256 14.8593 65.4766 15.8213 67.6667 15.8213H70.0002Z\",\n fill: \"black\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 1L11.4537 3.50203C12.7187 3.80479 13.6108 4.9357 13.6108 6.23639V7.51364M13.6108 7.51364C13.6108 8.3089 13.3815 9.08729 12.9503 9.75551L8.98343 15.9028C8.16416 17.1724 6.36807 17.3298 5.34044 16.2221L1 11.5435M13.6108 7.51364L13.6108 6.56258C13.6108 5.07061 14.6342 3.77339 16.0852 3.42611L26.2217 1M13.6108 7.51364C13.6108 8.3089 13.8402 9.08729 14.2714 9.75551L18.2382 15.9028C19.0575 17.1724 20.8536 17.3298 21.8812 16.2221L26.2217 11.5435M1.02977 1L11.5695 3.50203C12.946 3.89094 14.4018 3.90283 15.7845 3.53645L16.201 3.42611L26.2288 1\",\n stroke: \"black\",\n strokeWidth: 1.90397,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar SvgToitLogo = function SvgToitLogo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 70,\n height: 18,\n viewBox: \"0 0 70 18\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgToitLogo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/toit-logo.25584961.svg\";\nexport { ForwardRef as ReactComponent };","import { Button, createStyles, IconButton, Snackbar, Theme, WithStyles, withStyles } from \"@material-ui/core\";\nimport SuccessIcon from \"@material-ui/icons/CheckCircle\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport ErrorIcon from \"@material-ui/icons/Error\";\nimport React from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n snackbarMessage: {\n display: \"flex\",\n alignItems: \"center\",\n },\n resultIcon: {\n marginRight: theme.spacing(1),\n fontSize: 20,\n },\n buttonText: {\n color: \"green\",\n textDecoration: \"none\",\n },\n });\n\ninterface ButtonProps {\n text: string;\n link: string;\n}\n\ninterface SnackBarProps extends WithStyles {\n open: boolean;\n children: React.ReactNode;\n buttonProps?: ButtonProps;\n onClose: () => void;\n type: \"info\" | \"error\" | \"success\";\n}\n\nconst defaultAutoHideDuration = 6000;\n\nclass SnackBarComponent extends React.Component {\n render() {\n return (\n \n {this.props.buttonProps && this.props.buttonProps.text && (\n \n )}\n this.props.onClose()}>\n \n \n \n }\n onClose={(event, reason) => {\n if (reason === \"clickaway\") {\n return;\n }\n this.props.onClose();\n }}\n message={\n
\n {this.props.type === \"success\" ? (\n \n ) : this.props.type === \"error\" ? (\n \n ) : (\n <>\n )}\n {this.props.children}\n
\n }\n >\n );\n }\n}\n\nfunction LinkButton(props: ButtonProps) {\n const history = useHistory();\n\n return (\n \n );\n}\n\nexport const SnackBar = withStyles(styles)(SnackBarComponent);\n","import {\n Button,\n createStyles,\n Grid,\n Link,\n TextField,\n Theme,\n Typography,\n withStyles,\n WithStyles,\n} from \"@material-ui/core\";\nimport React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { Link as RouterLink, match } from \"react-router-dom\";\nimport { CONSOLE_URL, context } from \"../App\";\nimport { ReactComponent as Logo } from \"../assets/images/toit-logo.svg\";\nimport { SnackBar } from \"./SnackBar\";\n\n// const signupURL = \"https://toit.io/#sign-up\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n marginLeft: 0,\n marginRight: 0,\n paddingLeft: 0,\n paddingRight: 0,\n width: \"100vw\",\n height: \"100vh\",\n },\n logo: {\n padding: theme.spacing(2),\n },\n content: {\n paddingTop: \"18vh\",\n [theme.breakpoints.only(\"xs\")]: {\n paddingTop: \"6vh\",\n },\n },\n changePasswordForm: {\n width: \"50%\",\n maxWidth: \"450px\",\n [theme.breakpoints.only(\"xs\")]: {\n width: \"calc(100% - 32px)\",\n },\n },\n button: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n },\n heading: {\n paddingBottom: theme.spacing(3),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n link: {\n textDecorationLine: \"underline\",\n },\n });\n\ninterface State {\n error: boolean;\n errMsg: string | null;\n newpassword: string;\n confirmpassword: string;\n success: boolean;\n}\n\ninterface ChangePasswordParams {\n token: string;\n}\n\ninterface ChangePasswordProps extends WithStyles {\n match: match;\n history: History;\n}\n\nclass ChangePasswordView extends React.Component {\n state = {\n error: false,\n errMsg: \"\",\n newpassword: \"\",\n confirmpassword: \"\",\n success: false,\n };\n\n handleTextChange = (name: string) => (event: React.ChangeEvent) => {\n this.setState((prevState) => {\n return {\n ...prevState,\n error: false,\n errMsg: null,\n [name]: event.target.value,\n };\n });\n };\n\n handleChangePassword = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (this.state.confirmpassword !== this.state.newpassword) {\n this.setState({\n error: true,\n errMsg: \"Passwords do not match\",\n });\n } else {\n context\n .getServiceClient()\n .changePasswordWithRPToken(this.state.newpassword, this.props.match.params.token)\n .then((result) => {\n this.setState({\n error: false,\n errMsg: null,\n confirmpassword: \"\",\n newpassword: \"\",\n success: true,\n });\n // route back to login page if password changed succeeded\n setTimeout(() => (window.location.href = CONSOLE_URL + \"/login\"), 3000);\n })\n .catch((e) => {\n this.setState({\n error: true,\n errMsg: \"\" + e,\n });\n });\n return;\n }\n };\n\n onCloseInfoSnackbar = () => {\n this.setState({ success: false });\n };\n\n componentDidMount() {\n this.setState({\n error: false,\n errMsg: null,\n });\n }\n\n render() {\n const state: State = this.state || {};\n\n const message: string = this.state.errMsg + \"\";\n const tokenExpired: boolean = this.state.errMsg ? message.indexOf(\"invalid reset password token\") !== -1 : false;\n\n return (\n \n \n \n \n \n \n \n \n \n \n Change password\n \n
\n \n \n \n
\n \n Submit\n \n
\n \n
\n
\n
\n );\n }\n}\n\nexport default withStyles(styles)(ChangePasswordView);\n","import { Box, createStyles, Grid, Link, Theme, Typography, withStyles, WithStyles } from \"@material-ui/core\";\nimport queryString from \"query-string\";\nimport React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { OAUTH_URL } from \"../App\";\nimport { ReactComponent as Logo } from \"../assets/images/toit-logo.svg\";\nimport theme, { black } from \"../assets/theme/theme\";\n\n// const signupURL = \"https://toit.io/#sign-up\";\n\ninterface State {\n email: string;\n password: string;\n error?: string;\n success_uri?: string;\n client_id?: string;\n state?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n marginLeft: 0,\n marginRight: 0,\n paddingLeft: 0,\n paddingRight: 0,\n width: \"100vw\",\n height: \"100vh\",\n },\n logo: {\n padding: theme.spacing(2),\n },\n content: {\n paddingTop: \"18vh\",\n [theme.breakpoints.only(\"xs\")]: {\n paddingTop: \"6vh\",\n },\n },\n heading: {\n paddingBottom: theme.spacing(3),\n },\n errorText: {\n width: \"50%\",\n maxWidth: \"600px\",\n borderStyle: \"solid\",\n borderColor: black,\n borderWidth: \"1px\",\n borderRadius: 5,\n height: \"50vh\",\n minHeight: \"300px\",\n },\n });\n\ntype ErrorProps = WithStyles;\n\nclass ErrorView extends React.Component {\n handleTextChange = (name: string) => (event: React.ChangeEvent) => {\n this.setState((prevState) => {\n return {\n ...prevState,\n [name]: event.target.value,\n };\n });\n };\n\n componentDidMount() {\n const values = queryString.parse(document.location.search);\n const err = this.getLast(values.error);\n this.setState({\n success_uri: this.getLast(values.success_uri),\n state: this.getLast(values.state),\n client_id: this.getLast(values.client_id),\n error:\n err === \"login_failed\"\n ? \"Username and password did not match\"\n : err === \"invalid_success_uri\"\n ? \"Malformed OAuth2 login request\"\n : err === \"internal_error\"\n ? \"Internal error, try again\"\n : undefined,\n });\n\n console.log(\n \"Google Oauth2 link\",\n OAUTH_URL + \"/oauth/login/google?success_uri=\" + encodeURIComponent(this.getLast(values.success_uri) || \"\")\n );\n }\n\n getLast = (v: string | string[] | null) => {\n if (v === null || v === undefined) {\n return undefined;\n }\n if (typeof v == \"string\") {\n return v;\n }\n return v[v.length - 1];\n };\n\n render() {\n const state: State = this.state || {};\n return (\n \n \n \n \n \n \n \n \n \n \n You ran into an Error!\n \n \n \n {state.error || \"No error message found\"}\n \n \n \n \n \n );\n }\n}\n\nexport default withStyles(styles)(ErrorView);\n","import {\n Button,\n createStyles,\n Grid,\n Link,\n TextField,\n Theme,\n Typography,\n withStyles,\n WithStyles,\n} from \"@material-ui/core\";\nimport React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { match } from \"react-router\";\nimport { CONSOLE_URL, context } from \"../App\";\nimport { ReactComponent as Logo } from \"../assets/images/toit-logo.svg\";\nimport { black, toitGreen } from \"../assets/theme/theme\";\nimport { SnackBar } from \"./SnackBar\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n descriptionContainer: {\n background: toitGreen,\n },\n container: {\n marginLeft: 0,\n marginRight: 0,\n paddingLeft: 0,\n paddingRight: 0,\n width: \"100vw\",\n height: \"100vh\",\n },\n logo: {\n padding: theme.spacing(2),\n },\n signUpContent: {\n width: \"50%\",\n maxWidth: \"450px\",\n [theme.breakpoints.only(\"xs\")]: {\n width: \"70%\",\n },\n },\n leftContent: {\n paddingTop: \"18vh\",\n [theme.breakpoints.only(\"xs\")]: {\n paddingTop: \"6vh\",\n },\n },\n rightContent: {\n paddingTop: \"22vh\",\n [theme.breakpoints.only(\"xs\")]: {\n paddingTop: \"6vh\",\n },\n },\n initiateResetPasswordForm: {\n width: \"50%\",\n maxWidth: \"450px\",\n [theme.breakpoints.only(\"xs\")]: {\n width: \"calc(100% - 32px)\",\n },\n },\n topButton: {\n marginBottom: theme.spacing(1),\n },\n divider: {\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4),\n },\n inputLabel: {\n color: black,\n },\n button: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n },\n checkmarkText: {\n marginLeft: theme.spacing(1),\n },\n perkList: {\n marginTop: theme.spacing(3),\n },\n avatar: {\n backgroundColor: \"transparent\",\n },\n mobileSpacer: {\n paddingBottom: theme.spacing(4),\n },\n heading: {\n paddingBottom: theme.spacing(3),\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n },\n });\n\ninterface State {\n submitted: boolean;\n error: string | null;\n email: string;\n}\n\ninterface ResetPasswordParams {\n email: string;\n}\n\ninterface InitiateResetPasswordProps extends WithStyles {\n match: match;\n}\n\nclass InitiateResetPasswordView extends React.Component {\n public readonly state: State = {\n email: \"\",\n submitted: false,\n error: null,\n };\n\n componentDidMount() {\n this.setState({\n email: this.props.match.params.email || \"\",\n submitted: false,\n });\n }\n\n handleTextChange = (name: string) => (event: React.ChangeEvent) => {\n this.setState((prevState) => {\n return {\n ...prevState,\n [name]: event.target.value,\n };\n });\n };\n\n handleInitiateResetPassword = (event: React.FormEvent) => {\n event.preventDefault();\n\n context\n .getServiceClient()\n .initiateResetPassword(this.state.email)\n .then((result) => {\n this.setState({\n submitted: true,\n error: null,\n });\n })\n .catch((e) => {\n // Don't display DB information for the user\n if (e instanceof Object && \"message\" in e) {\n const err = e as { message: string };\n\n // typeof err.message === \"string\" &&\n // !err.message.includes(\"User not found\")\n this.setState({\n submitted: false,\n error: err.message,\n });\n }\n });\n };\n\n render() {\n const classes = this.props.classes;\n\n return (\n \n \n \n \n \n \n \n \n \n \n Reset password\n \n \n \n \n
\n \n
\n
\n \n Go to sign in\n \n
\n this.setState({ submitted: false })}\n type=\"info\"\n >\n An email has been sent to {this.state.email} requesting a password reset\n \n
\n \n
\n
\n
\n );\n }\n}\n\nexport default withStyles(styles)(InitiateResetPasswordView);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.9883 2.23535C7.74316 2.23242 1.875 8.09766 1.875 15.3369C1.875 21.0615 5.5459 25.9277 10.6582 27.7148C11.3467 27.8877 11.2412 27.3984 11.2412 27.0645V24.7939C7.26563 25.2598 7.10449 22.6289 6.83789 22.1895C6.29883 21.2695 5.02441 21.0352 5.40527 20.5957C6.31055 20.1299 7.2334 20.7129 8.30273 22.292C9.07617 23.4375 10.585 23.2441 11.3496 23.0537C11.5166 22.3652 11.874 21.75 12.3662 21.2725C8.24707 20.5342 6.53027 18.0205 6.53027 15.0322C6.53027 13.582 7.00781 12.249 7.94531 11.1738C7.34766 9.40137 8.00098 7.88379 8.08887 7.6582C9.79102 7.50586 11.5605 8.87696 11.6982 8.98535C12.665 8.72461 13.7695 8.58692 15.0059 8.58692C16.248 8.58692 17.3555 8.73047 18.3311 8.99414C18.6621 8.74219 20.3027 7.56446 21.8848 7.70801C21.9697 7.9336 22.6084 9.41602 22.0459 11.165C22.9951 12.2432 23.4785 13.5879 23.4785 15.041C23.4785 18.0352 21.75 20.5518 17.6191 21.2783C17.973 21.6263 18.2539 22.0413 18.4455 22.499C18.6372 22.9567 18.7357 23.4481 18.7354 23.9443V27.2402C18.7588 27.5039 18.7354 27.7647 19.1748 27.7647C24.3633 26.0156 28.0986 21.1143 28.0986 15.3398C28.0986 8.09766 22.2275 2.23535 14.9883 2.23535Z\",\n fill: \"black\"\n});\n\nvar SvgGithubLogo = function SvgGithubLogo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 30,\n height: 30,\n viewBox: \"0 0 30 30\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGithubLogo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/github-logo.d3dcbfbf.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.2569 12.5519H26.25V12.5H15V17.5H22.0644C21.0338 20.4106 18.2644 22.5 15 22.5C10.8581 22.5 7.5 19.1419 7.5 15C7.5 10.8581 10.8581 7.5 15 7.5C16.9119 7.5 18.6513 8.22125 19.9756 9.39937L23.5112 5.86375C21.2787 3.78312 18.2925 2.5 15 2.5C8.09688 2.5 2.5 8.09688 2.5 15C2.5 21.9031 8.09688 27.5 15 27.5C21.9031 27.5 27.5 21.9031 27.5 15C27.5 14.1619 27.4137 13.3438 27.2569 12.5519Z\",\n fill: \"#FFC107\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.94141 9.18188L8.04828 12.1938C9.15953 9.4425 11.8508 7.5 15.0002 7.5C16.912 7.5 18.6514 8.22125 19.9758 9.39937L23.5114 5.86375C21.2789 3.78312 18.2927 2.5 15.0002 2.5C10.1989 2.5 6.03516 5.21062 3.94141 9.18188Z\",\n fill: \"#FF3D00\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.0002 27.4999C18.2289 27.4999 21.1627 26.2643 23.3808 24.2549L19.5121 20.9812C18.2149 21.9677 16.6299 22.5012 15.0002 22.4999C11.7489 22.4999 8.98832 20.4268 7.94832 17.5337L3.87207 20.6743C5.94082 24.7224 10.1421 27.4999 15.0002 27.4999Z\",\n fill: \"#4CAF50\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.2569 12.5519H26.25V12.5H15V17.5H22.0644C21.5714 18.8853 20.6833 20.0957 19.51 20.9819L19.5119 20.9806L23.3806 24.2544C23.1069 24.5031 27.5 21.25 27.5 15C27.5 14.1619 27.4137 13.3438 27.2569 12.5519Z\",\n fill: \"#1976D2\"\n});\n\nvar SvgGoogleLogo = function SvgGoogleLogo(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 30,\n height: 30,\n viewBox: \"0 0 30 30\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgGoogleLogo, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/google-logo.f08478ab.svg\";\nexport { ForwardRef as ReactComponent };","import { createStyles, Theme, withStyles, WithStyles } from \"@material-ui/core/styles\";\nimport React from \"react\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n alignItems: \"center\",\n },\n border: {\n borderBottom: \"1px solid black\",\n width: \"100%;\",\n },\n content: {\n padding: \"0 10px 0 10px\",\n },\n });\n\ninterface DividerProps extends WithStyles {\n title: string;\n}\n\nfunction CustomDivider(props: DividerProps): JSX.Element {\n return (\n
\n
\n {props.title}\n
\n
\n );\n}\n\nexport default withStyles(styles)(CustomDivider);\n","import {\n Box,\n Button,\n createStyles,\n FormHelperText,\n Grid,\n InputLabel,\n Link,\n TextField,\n Theme,\n Typography,\n withStyles,\n WithStyles,\n} from \"@material-ui/core\";\nimport queryString from \"query-string\";\nimport React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { OAUTH_URL } from \"../App\";\nimport { ReactComponent as GithubLogo } from \"../assets/images/github-logo.svg\";\nimport { ReactComponent as GoogleLogo } from \"../assets/images/google-logo.svg\";\nimport { ReactComponent as Logo } from \"../assets/images/toit-logo.svg\";\nimport { black } from \"../assets/theme/theme\";\nimport CustomDivider from \"./CustomDivider\";\n\ninterface State {\n email: string;\n password: string;\n error?: string;\n success_uri?: string;\n client_id?: string;\n state?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n marginLeft: 0,\n marginRight: 0,\n paddingLeft: 0,\n paddingRight: 0,\n width: \"100vw\",\n height: \"100vh\",\n },\n logo: {\n padding: theme.spacing(2),\n },\n signUpContent: {\n width: \"50%\",\n maxWidth: \"450px\",\n [theme.breakpoints.only(\"xs\")]: {\n width: \"70%\",\n paddingTop: 0,\n },\n },\n content: {\n paddingTop: \"18vh\",\n [theme.breakpoints.only(\"xs\")]: {\n paddingTop: \"6vh\",\n },\n },\n topButton: {\n marginBottom: theme.spacing(1),\n },\n divider: {\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4),\n },\n inputLabel: {\n color: black,\n },\n button: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n },\n heading: {\n paddingBottom: theme.spacing(3),\n },\n link: {\n marginTop: theme.spacing(2),\n },\n });\n\ntype SignInProps = WithStyles;\n\nclass SignInView extends React.Component {\n handleTextChange = (name: string) => (event: React.ChangeEvent) => {\n this.setState((prevState) => {\n return {\n ...prevState,\n [name]: event.target.value,\n };\n });\n };\n\n componentDidMount() {\n const values = queryString.parse(document.location.search);\n const err = this.getLast(values.error);\n this.setState({\n success_uri: this.getLast(values.success_uri),\n state: this.getLast(values.state),\n client_id: this.getLast(values.client_id),\n error:\n err === \"login_failed\"\n ? \"Username and password did not match\"\n : err === \"invalid_success_uri\"\n ? \"Malformed OAuth2 login request\"\n : err === \"internal_error\"\n ? \"Internal error, try again\"\n : undefined,\n });\n }\n\n getLast = (v: string | string[] | null) => {\n if (v === null || v === undefined) {\n return undefined;\n }\n if (typeof v == \"string\") {\n return v;\n }\n return v[v.length - 1];\n };\n\n render() {\n const state: State = this.state || {};\n\n return (\n \n \n \n \n \n \n \n \n \n {!state.success_uri || !state.client_id || !state.state ? (\n \n Malformed OAuth2 login request\n \n ) : (\n
\n \n \n \n\n \n Sign in to Toit\n \n }\n className={this.props.classes.topButton}\n href={OAUTH_URL + \"/oauth/login/google?success_uri=\" + encodeURIComponent(state.success_uri || \"\")}\n >\n Sign in with Google\n \n }\n href={OAUTH_URL + \"/oauth/login/github?success_uri=\" + encodeURIComponent(state.success_uri || \"\")}\n >\n Sign in with GitHub\n \n \n \n \n Sign in with email\n {state.error !== null && {state.error}}\n \n \n
\n \n
\n
\n \n Not a user yet? Sign up\n \n \n Reset Password\n \n
\n \n )}\n
\n
\n
\n );\n }\n}\n\nexport default withStyles(styles)(SignInView);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.9802 13.1006L21.9731 13.0974L21.9658 13.0945C21.7179 12.9972 21.4788 13.027 21.2831 13.175C21.1163 13.3012 21.0088 13.4936 20.9322 13.661C20.8644 13.8093 20.8035 13.9791 20.7471 14.1365C20.7377 14.1628 20.7284 14.1887 20.7192 14.2142C20.6518 14.4007 20.5881 14.5675 20.5146 14.7056L20.0697 15.5417C20.0697 15.5417 20.0696 15.5418 20.0696 15.5418C18.2751 18.9097 14.6048 21.0412 11.074 20.8004C7.56272 20.5608 5.0163 18.0357 4.7917 14.5881C4.56572 11.1192 6.74509 7.51813 10.179 5.76731C12.7457 4.45869 15.5234 4.43394 17.6458 5.53464C18.3943 5.92282 19.3505 5.57017 19.8177 4.84307C20.052 4.47847 20.1946 4.00812 20.0494 3.4813C19.9064 2.96291 19.5005 2.44844 18.7661 1.95227L18.7507 1.94187L18.7342 1.93332C15.7007 0.36011 12.4695 1.27144 9.02161 3.02939C4.33869 5.41701 1.32056 10.3456 1.63499 15.1721C1.9508 20.0199 5.55397 23.5797 10.4666 23.9149C15.3597 24.2487 20.3808 21.3079 22.8321 16.707L22.8322 16.7068L23.2779 15.8693C23.4871 15.4762 23.5642 14.9575 23.3752 14.4409C23.1847 13.92 22.7393 13.4424 21.9802 13.1006Z\",\n fill: \"#55A398\",\n stroke: \"black\",\n strokeWidth: 0.641037\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.568 17.0513L10.5679 17.0514L10.574 17.0589C11.0048 17.5827 11.4959 17.8521 11.9895 17.8993C12.4796 17.9462 12.9288 17.7696 13.2688 17.484L25.6731 7.06785C26.3393 6.50847 26.5597 5.52691 26.0188 4.86556C25.9889 4.82898 25.9547 4.78643 25.917 4.73938C25.717 4.48979 25.4153 4.11342 25.0975 3.82807C24.9094 3.65913 24.6888 3.49643 24.4541 3.4166C24.2035 3.33136 23.9135 3.33625 23.6642 3.54561L23.6559 3.55258L23.6481 3.56009L12.6676 14.1243L9.90004 10.7413C9.88805 10.7267 9.87556 10.7113 9.86259 10.6954C9.66488 10.453 9.35559 10.0738 8.98777 9.78499C8.60122 9.48151 8.0681 9.21463 7.4854 9.41867L7.43008 9.43804L7.3852 9.47574C7.16132 9.66376 7.0449 9.96252 6.9819 10.2457C6.91634 10.5405 6.8959 10.8772 6.90697 11.2042C6.91808 11.5322 6.96135 11.8629 7.03021 12.1488C7.09574 12.4208 7.19399 12.6935 7.33995 12.8741L10.568 17.0513Z\",\n fill: \"#55A398\",\n stroke: \"black\",\n strokeWidth: 0.641037\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.899 15.7632L21.8991 15.7631L22.3448 14.9255C22.7575 14.1499 22.5199 13.2046 21.6991 12.8824C20.9155 12.5748 19.9862 13.0012 19.5815 13.7618L19.1366 14.5979C17.3421 17.9659 13.6717 20.0975 10.1409 19.8566C6.62962 19.617 4.08319 17.092 3.8586 13.6444C3.63261 10.1755 5.81198 6.57437 9.24592 4.82355C11.8126 3.51492 14.5903 3.49018 16.7127 4.59088C17.4612 4.97906 18.4174 4.62641 18.8846 3.89931C19.3583 3.16213 19.2229 2.18994 18.4444 1.78622C15.4556 0.236189 11.6011 0.294683 8.0885 2.08562C3.40559 4.47325 0.387453 9.40184 0.701882 14.2283C1.0177 19.0761 4.62087 22.6359 9.53346 22.9711C14.4266 23.3049 19.4477 20.3641 21.899 15.7632Z\",\n fill: \"#55A398\",\n stroke: \"black\",\n strokeWidth: 0.641037\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.7379 6.12413C25.4041 5.56475 25.6245 4.5832 25.0836 3.92184C24.5395 3.25661 23.5393 3.29577 22.8721 3.856L11.7468 13.1982L8.96485 9.79761C8.42069 9.13244 7.42047 9.17169 6.75336 9.73196C6.08725 10.2914 5.86691 11.273 6.40791 11.9343L10.1223 16.4746C10.6664 17.1397 11.6665 17.1005 12.3336 16.5403L24.7379 6.12413Z\",\n fill: \"#55A398\",\n stroke: \"black\",\n strokeWidth: 0.641037\n});\n\nvar SvgCheckmark = function SvgCheckmark(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 27,\n height: 25,\n viewBox: \"0 0 27 25\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgCheckmark, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/checkmark.52afe0a7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M54.2344 67.5024C53.8908 67.5024 53.6123 67.781 53.6123 68.1245V82.1779C53.6123 83.365 54.5747 84.3275 55.7619 84.3275C56.9491 84.3275 57.9115 83.365 57.9115 82.1779V68.1245C57.9115 67.781 57.633 67.5024 57.2894 67.5024H54.2344Z\",\n fill: \"#FAC864\",\n stroke: \"black\",\n strokeWidth: 1.24413,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.938 50.0884C84.5944 50.0884 84.3159 50.3669 84.3159 50.7104V64.7638C84.3159 65.951 85.2783 66.9134 86.4655 66.9134C87.6527 66.9134 88.6151 65.951 88.6151 64.7638V50.7104C88.6151 50.3669 88.3366 50.0884 87.9931 50.0884H84.938Z\",\n fill: \"#FAC864\",\n stroke: \"black\",\n strokeWidth: 1.24413,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M44.3052 61.8503C43.9616 61.8503 43.6831 62.1289 43.6831 62.4724V76.5258C43.6831 77.7129 44.6455 78.6754 45.8327 78.6754C47.0199 78.6754 47.9823 77.7129 47.9823 76.5258V62.4724C47.9823 62.1289 47.7038 61.8503 47.3602 61.8503H44.3052Z\",\n fill: \"#FAC864\",\n stroke: \"black\",\n strokeWidth: 1.24413,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M34.3765 55.8931C34.0329 55.8931 33.7544 56.1716 33.7544 56.5151V70.5685C33.7544 71.7557 34.7168 72.7181 35.904 72.7181C37.0912 72.7181 38.0536 71.7557 38.0536 70.5685V56.5151C38.0536 56.1716 37.7751 55.8931 37.4315 55.8931H34.3765Z\",\n fill: \"#FAC864\",\n stroke: \"black\",\n strokeWidth: 1.24413,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.4478 50.0884C24.1042 50.0884 23.8257 50.3669 23.8257 50.7104V64.7638C23.8257 65.951 24.7881 66.9134 25.9753 66.9134C27.1625 66.9134 28.1249 65.951 28.1249 64.7638V50.7104C28.1249 50.3669 27.8464 50.0884 27.5028 50.0884H24.4478Z\",\n fill: \"#FAC864\",\n stroke: \"black\",\n strokeWidth: 1.24413,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.5186 44.5894C14.175 44.5894 13.8965 44.8679 13.8965 45.2114V59.2648C13.8965 60.452 14.8589 61.4144 16.0461 61.4144C17.2333 61.4144 18.1957 60.452 18.1957 59.2648V45.2114C18.1957 44.8679 17.9172 44.5894 17.5736 44.5894H14.5186Z\",\n fill: \"#FAC864\",\n stroke: \"black\",\n strokeWidth: 1.24413,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M63.4879 73.8498L92.5815 57.0526C93.3501 56.6089 93.7343 56.0273 93.7343 55.4458L93.7343 51.0159L12.3301 42.2327L12.3301 46.5861C12.3301 47.1677 12.7143 47.7492 13.4828 48.1929L57.9219 73.8498C59.4589 74.7372 61.9509 74.7372 63.4879 73.8498Z\",\n fill: \"#55A398\",\n stroke: \"black\",\n strokeWidth: 1.24413\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 40.0215,\n height: 57.7409,\n rx: 3.21354,\n transform: \"matrix(0.866025 -0.5 0.866025 0.5 10.6997 42.1562)\",\n fill: \"#BAD5D2\",\n stroke: \"black\",\n strokeWidth: 1.24413\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M73.5833 63.4088L80.9915 59.1317C81.3649 58.9162 81.5474 58.6322 81.5392 58.3497V54.7417H75.6427H62.9817V58.3497C62.9735 58.6322 63.156 58.9162 63.5294 59.1317L70.9376 63.4088C71.6682 63.8307 72.8527 63.8307 73.5833 63.4088Z\",\n fill: \"#C4C4C4\",\n stroke: \"black\",\n strokeWidth: 1.24413,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 11.6093,\n height: 11.6093,\n rx: 1.52754,\n transform: \"matrix(0.866025 -0.5 0.866025 0.5 62.2065 54.8235)\",\n fill: \"white\",\n stroke: \"black\",\n strokeWidth: 1.24413\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 15.8864,\n height: 18.0249,\n rx: 1.52754,\n transform: \"matrix(0.866025 -0.5 0.866025 0.5 21.1504 36.1226)\",\n fill: \"#E5E5E5\",\n stroke: \"black\",\n strokeWidth: 1.24413\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24.1351,\n height: 21.3855,\n rx: 0.305507,\n transform: \"matrix(0.866025 -0.5 0.866025 0.5 17.5786 38.1846)\",\n stroke: \"black\",\n strokeWidth: 1.24413\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24.1351,\n height: 15.7336,\n rx: 0.305507,\n transform: \"matrix(0.866025 -0.5 -0.866025 -0.5 52.3706 58.2717)\",\n stroke: \"black\",\n strokeWidth: 1.24413\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 11.6093,\n height: 9.62348,\n rx: 1.52754,\n transform: \"matrix(0.866025 -0.5 -0.866025 -0.5 55.1484 53.6128)\",\n fill: \"#464646\",\n stroke: \"black\",\n strokeWidth: 1.24413\n});\n\nvar SvgDevBoard = function SvgDevBoard(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, [\"svgRef\", \"title\"]);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 106,\n height: 106,\n viewBox: \"0 0 106 106\",\n fill: \"none\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _ref2, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15);\n};\n\nvar ForwardRef = React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgDevBoard, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/dev-board.e46b6300.svg\";\nexport { ForwardRef as ReactComponent };","import {\n Avatar,\n Box,\n Button,\n Checkbox,\n createStyles,\n DialogContentText,\n FormControlLabel,\n FormHelperText,\n Grid,\n InputLabel,\n Link,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n TextField,\n Theme,\n Typography,\n withStyles,\n WithStyles,\n} from \"@material-ui/core\";\nimport { Formik } from \"formik\";\nimport React from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport * as yup from \"yup\";\nimport { CONSOLE_URL } from \"../App\";\nimport { ReactComponent as CheckMark } from \"../assets/images/checkmark.svg\";\nimport { ReactComponent as DevBoard } from \"../assets/images/dev-board.svg\";\nimport { ReactComponent as GithubLogo } from \"../assets/images/github-logo.svg\";\nimport { ReactComponent as GoogleLogo } from \"../assets/images/google-logo.svg\";\nimport { ReactComponent as Logo } from \"../assets/images/toit-logo.svg\";\nimport { black, toitGreen } from \"../assets/theme/theme\";\nimport CustomDivider from \"./CustomDivider\";\nimport { SnackBar } from \"./SnackBar\";\n\ninterface State {\n error?: string;\n isSending: boolean;\n snackbarOpen: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n descriptionContainer: {\n background: toitGreen,\n },\n container: {\n marginLeft: 0,\n marginRight: 0,\n paddingLeft: 0,\n paddingRight: 0,\n width: \"100vw\",\n height: \"100vh\",\n overflowX: \"scroll\",\n },\n logo: {\n padding: theme.spacing(2),\n },\n signUpContent: {\n width: \"50%\",\n maxWidth: \"450px\",\n [theme.breakpoints.only(\"xs\")]: {\n width: \"70%\",\n },\n },\n leftContent: {\n paddingTop: \"18vh\",\n [theme.breakpoints.only(\"xs\")]: {\n paddingTop: \"0\",\n },\n [theme.breakpoints.only(\"md\")]: {\n paddingTop: \"6vh\",\n },\n },\n rightContent: {\n paddingTop: \"26vh\",\n [theme.breakpoints.down(\"md\")]: {\n paddingTop: \"10vh\",\n },\n },\n topButton: {\n marginBottom: theme.spacing(1),\n },\n divider: {\n marginTop: theme.spacing(4),\n marginBottom: theme.spacing(4),\n },\n inputLabel: {\n color: black,\n },\n signUpButton: {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n },\n checkmarkText: {\n marginLeft: theme.spacing(1),\n },\n perkList: {\n marginTop: theme.spacing(3),\n },\n avatar: {\n backgroundColor: \"transparent\",\n },\n mobileSpacer: {\n paddingBottom: theme.spacing(4),\n [theme.breakpoints.down(\"md\")]: {\n paddingBottom: theme.spacing(10),\n },\n },\n heading: {\n paddingBottom: theme.spacing(3),\n },\n planContent: {\n paddingBottom: theme.spacing(6),\n },\n link: {\n textDecorationLine: \"underline\",\n },\n textSpacing: {\n paddingBottom: theme.spacing(2),\n },\n checkboxForm: { marginLeft: 0 },\n checkbox: { padding: 0, paddingRight: 9 },\n });\n\ntype SignUpFormProps = {\n handleSuccess: () => void;\n};\n\n/** The values controlled by this form. */\ninterface SignUpValues {\n email: string;\n}\n\ninterface SignUpProps extends WithStyles {\n history: History;\n}\n\n/** The values controlled by this form. */\ninterface SignUpValues {\n email: string;\n subscribed_to_newsletter: boolean;\n}\n\nclass SignUpView extends React.Component {\n async onSubmit(values: SignUpValues) {\n this.setState({ isSending: true });\n let error = \"\";\n try {\n const body = JSON.stringify(values);\n const response = await fetch(\"https://console.toit.io/forms/create_organization\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: body,\n credentials: \"include\",\n });\n if (!response.ok) {\n throw Error(await response.text());\n }\n this.setState({ snackbarOpen: true });\n } catch (e) {\n error = \"Something went wrong. Please try again.\";\n if (e instanceof Error) {\n error += ` Error: ${e.message}`;\n }\n this.setState({ error: error });\n } finally {\n if (error !== \"\") {\n analytics.track(\"Signup Form Failed\", { values, error: error });\n } else {\n analytics.track(\"Signup Form Succeeded\", values);\n analytics.track(\"SignUp\", {}, { integrations: { All: false, Reddit: true } });\n setTimeout(() => {\n window.location.href = CONSOLE_URL + \"/login\";\n }, 3000);\n }\n this.setState({ isSending: false });\n }\n }\n\n public readonly state: State = {\n isSending: false,\n snackbarOpen: false,\n error: \"\",\n };\n\n initialValues: SignUpValues = {\n email: \"\",\n subscribed_to_newsletter: false,\n };\n\n validationSchema: yup.SchemaOf = yup.object({\n email: yup.string().email(\"Enter a valid email\").required(\"Email is required\"),\n subscribed_to_newsletter: yup.bool().defined(),\n });\n\n render() {\n return (\n \n \n {\n this.setState({ snackbarOpen: false });\n }}\n >\n User created, please check your email\n \n {this.state.snackbarOpen ? (\n \n ) : null}\n \n \n \n \n \n \n \n \n {(props) => (\n
\n {this.state.error !== null && {this.state.error}}\n\n \n Sign up to Toit\n \n }\n className={this.props.classes.topButton}\n href={CONSOLE_URL + \"/login/google\"}\n >\n Sign up with Google\n \n \n \n \n \n Sign up with your email\n \n \n }\n label=\"I want to receive the Toit newsletter.\"\n labelPlacement=\"end\"\n className={this.props.classes.checkboxForm}\n />\n \n
\n \n
\n \n By signing up, I agree to the Toit{\" \"}\n \n Privacy Policy\n {\" \"}\n and{\" \"}\n \n Terms of Service\n \n .\n \n \n Already have a user?{\" \"}\n \n Sign in\n {\" \"}\n \n \n )}\n \n
\n
\n \n \n \n \n \n \n Experience Toit today\n \n \n \n \n \n \n \n \n \n Best high-level language for IoT\n \n \n \n \n \n \n \n Sandboxed containers on your microcontrollers\n \n \n \n \n \n \n \n No credit card required\n \n \n \n \n \n
\n );\n }\n}\n\nexport default withStyles(styles)(SignUpView);\n","import React from \"react\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport { CONSOLE_URL } from \"./../App\";\nimport ChangePasswordView from \"./ChangePasswordView\";\nimport ErrorView from \"./ErrorView\";\nimport InitiateResetPasswordView from \"./InitiateResetPasswordView\";\nimport SignInView from \"./SignInView\";\nimport SignUpView from \"./SignUpView\";\n\ninterface PageComponent {\n name: string;\n path: string;\n exact: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n main: React.ComponentType;\n}\n\nconst pages: PageComponent[] = [\n {\n name: \"Initiate password reset\",\n path: \"/resetpassword/:email?\",\n exact: true,\n main: InitiateResetPasswordView,\n },\n {\n name: \"Change Password\",\n path: \"/changepassword/:token\",\n exact: true,\n main: ChangePasswordView,\n },\n {\n name: \"Sign up\",\n path: \"/signup\",\n exact: true,\n main: SignUpView,\n },\n {\n name: \"Sign in\",\n path: \"/login\",\n exact: true,\n main: SignInView,\n },\n {\n name: \"Error\",\n path: \"/error\",\n exact: true,\n main: ErrorView,\n },\n];\n\nclass MainView extends React.Component {\n componentDidMount(): void {\n const path = window.location.pathname;\n if (\n path !== \"/error\" &&\n path !== \"/signup\" &&\n path !== \"/login\" &&\n !path.startsWith(\"/changepassword\") &&\n !path.startsWith(\"/resetpassword\")\n ) {\n window.location.href = CONSOLE_URL + \"/login\";\n }\n analytics.page();\n }\n render(): JSX.Element {\n return (\n \n \n {pages.map((page, index) => (\n \n ))}\n \n \n );\n }\n}\n\nexport default MainView;\n","import { grpc } from \"@improbable-eng/grpc-web\";\nimport { AuthClient } from \"../../proto/toit/api/auth_pb_service\";\nimport { ChangePasswordWithRPTokenRequest, InitiateResetPasswordRequest } from \"../../proto/toit/api/user_pb\";\nimport { UserClient } from \"../../proto/toit/api/user_pb_service\";\nimport ServiceClient from \"../service-client\";\n\nexport default class ProtoServiceClient implements ServiceClient {\n private userClient: UserClient;\n private authClient: AuthClient;\n\n constructor(url: string) {\n const transport = grpc.CrossBrowserHttpTransport({ withCredentials: true });\n this.userClient = new UserClient(url, { transport: transport });\n this.authClient = new AuthClient(url, { transport: transport });\n }\n\n changePasswordWithRPToken(password: string, token: string): Promise {\n const req = new ChangePasswordWithRPTokenRequest();\n req.setNewPassword(password);\n req.setToken(token);\n\n return new Promise((resolve, reject) => {\n this.userClient.changePasswordWithRPToken(req, (err, resp) => {\n if (resp) {\n resolve();\n } else {\n reject(err || \"No error or response given\");\n }\n });\n });\n }\n\n initiateResetPassword(email: string): Promise {\n const req = new InitiateResetPasswordRequest();\n req.setEmail(email);\n\n return new Promise((resolve, reject) => {\n this.userClient.initiateResetPassword(req, (err, resp) => {\n if (resp) {\n resolve();\n } else {\n reject(err || \"No error or response given\");\n }\n });\n });\n }\n}\n","import ServiceClient from \"./service-client\";\n\nexport class ServiceContext {\n private serviceClient: ServiceClient;\n\n constructor(serviceClient: ServiceClient) {\n this.serviceClient = serviceClient;\n }\n\n getServiceClient(): ServiceClient {\n return this.serviceClient;\n }\n}\n","import { MuiThemeProvider } from \"@material-ui/core\";\nimport CookieConsent from \"@toitware/cookie-consent\";\nimport React from \"react\";\nimport queryString from \"query-string\";\nimport theme from \"./assets/theme/theme\";\nimport MainView from \"./components/MainView\";\nimport ProtoServiceClient from \"./service/proto/proto-service-client\";\nimport { ServiceContext } from \"./service/service-context\";\n\nfunction getHeadMeta(name: string): string {\n const elements = document.getElementsByName(name);\n if (elements.length === 1) {\n return (elements[0] as HTMLMetaElement).content;\n }\n return \"\";\n}\n\nconst query = queryString.parse(window.location.search);\nexport const developmentMode =\n (window.location.href.startsWith(\"http://localhost\") ||\n window.location.href.startsWith(\"https://localhost\") ||\n window.location.href.startsWith(\"https://auth.local.toit.io\") ||\n window.location.href.startsWith(\"https://web-auth.infra.toit.io\")) &&\n query[\"devMode\"] !== \"off\" &&\n query[\"devMode\"] !== \"0\" &&\n query[\"devMode\"] !== \"false\";\n\nexport const API_URL = getHeadMeta(\"toit-api-url\");\nexport const OAUTH_URL = getHeadMeta(\"toit-oauth-url\");\nexport const CONSOLE_URL = getHeadMeta(\"toit-console-url\");\nexport const SEGMENT_KEY = getHeadMeta(\"segment-key\");\n\nlet RedditTrackingSetup = false;\nconst setupRedditTracking = () => {\n if (RedditTrackingSetup) {\n return;\n }\n RedditTrackingSetup = true;\n // Redirect to analytics requests to reddit.\n const forReddit = (options?: SegmentAnalytics.SegmentOpts): boolean => {\n const integrations = options && (options.integrations as { Reddit?: boolean } | undefined);\n return !!(integrations && integrations.Reddit);\n };\n\n if (typeof window !== \"undefined\") {\n analytics.on(\"track\", (event, properties, options) => {\n if (forReddit(options)) {\n window.rdt(\"track\", event);\n }\n });\n analytics.on(\"page\", () => {\n window.rdt(\"track\", \"PageVisit\");\n });\n }\n};\nsetupRedditTracking();\n\nconst serviceClient = new ProtoServiceClient(API_URL);\nexport const context = new ServiceContext(serviceClient);\n\nclass App extends React.Component {\n componentDidMount(): void {\n console.log(\"API_URL\", API_URL);\n console.log(\"OAUTH_URL\", OAUTH_URL);\n console.log(\"CONSOLE_URL\", CONSOLE_URL);\n }\n\n render(): JSX.Element {\n return (\n \n \n {\n window.redditSnippetLoader(\"t2_brvtmsx5\");\n }}\n />\n \n );\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}