diff --git a/Dockerfile b/Dockerfile index 71d8e37..b81cb29 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,6 +15,7 @@ RUN apt-get update && \ apt-get install -y ca-certificates FROM scratch +COPY --from=build /workspace/providers.json / COPY --from=build /workspace/terrarium / COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt ENTRYPOINT [ "/terrarium" ] diff --git a/cmd/rest_providers_v1.go b/cmd/rest_providers_v1.go new file mode 100644 index 0000000..7c2c6a2 --- /dev/null +++ b/cmd/rest_providers_v1.go @@ -0,0 +1,38 @@ +package cmd + +import ( + providersv1 "github.com/terrariumcloud/terrarium/internal/restapi/providers/v1" + + "github.com/terrariumcloud/terrarium/internal/provider/services" + + "github.com/spf13/cobra" +) + +var mountPathProviders string + +var providersV1Cmd = &cobra.Command{ + Use: "providers.v1", + Short: "Starts the Terrarium REST API service implementing a read only version of the provider.v1 registry protocol", + Long: "Runs the Terrarium REST server for the implementation of the provider.v1 protocol", + Run: runRESTProvidersV1Server, +} + +func init() { + providersV1Cmd.Flags().StringVarP( + &mountPathProviders, + "mount-path", + "m", + "providers", + "Mount path for the rest API server used to process request relative to a particular URL in a reverse proxy type setup", + ) + rootCmd.AddCommand(providersV1Cmd) +} + +func runRESTProvidersV1Server(cmd *cobra.Command, args []string) { + vm, err := services.NewJSONFileProviderVersionManager() + if err != nil { + panic(err) + } + restAPIServer := providersv1.New(vm) + startRESTAPIService("rest-providers-v1", mountPathProviders, restAPIServer) +} diff --git a/internal/provider/services/jsonDataLoader.go b/internal/provider/services/jsonDataLoader.go new file mode 100644 index 0000000..947d237 --- /dev/null +++ b/internal/provider/services/jsonDataLoader.go @@ -0,0 +1,180 @@ +package services + +import ( + "encoding/json" + "fmt" + "log" + "os" + + "gopkg.in/errgo.v2/errors" +) + +type ProviderVersionManager interface { + ListProviderVersions(providerName string) (*ProviderVersionsResponse, error) + GetVersionData(providerName string, version string, os string, arch string) (*PlatformMetadataResponse, error) +} + +// Structs to load data into (from a JSON file for now, will be from DB later) +type GPGPublicKey struct { + KeyID string `json:"key_id"` + ASCIIArmor string `json:"ascii_armor"` + TrustSignature string `json:"trust_signature"` + Source string `json:"source"` + SourceURL string `json:"source_url"` +} + +type SigningKeys struct { + GPGPublicKeys []GPGPublicKey `json:"gpg_public_keys"` +} + +type ProviderMetadata struct { + OS string `json:"os"` + Arch string `json:"arch"` + Filename string `json:"filename"` + DownloadURL string `json:"download_url"` + ShasumsURL string `json:"shasums_url"` + ShasumsSignatureURL string `json:"shasums_signature_url"` + Shasum string `json:"shasum"` + SigningKeys SigningKeys `json:"signing_keys"` +} + +type VersionData struct { + Protocols []string `json:"protocols"` + Platforms []ProviderMetadata `json:"platforms"` +} + +type ProviderData map[string]VersionData + +type JSONFileProviderVersionManager struct { + data map[string]ProviderData +} + +// Structs to load response into (for listing versions for a specific provider) + +type Platform struct { + OS string `json:"os"` + Arch string `json:"arch"` +} + +type VersionItem struct { + Version string `json:"version"` + Protocols []string `json:"protocols"` + Platforms []Platform `json:"platforms"` +} + +type ProviderVersionsResponse struct { + Versions []VersionItem `json:"versions"` +} + +// Structs to load response into (for a provider's metadata) + +type PlatformMetadataResponse struct { + Protocols []string `json:"protocols"` + OS string `json:"os"` + Arch string `json:"arch"` + Filename string `json:"filename"` + DownloadURL string `json:"download_url"` + ShasumsURL string `json:"shasums_url"` + ShasumsSigURL string `json:"shasums_signature_url"` + Shasum string `json:"shasum"` + SigningKeys SigningKeys `json:"signing_keys"` +} + +var providerObj map[string]ProviderData + +func LoadData() (map[string]ProviderData, error) { + log.Printf("loadJSONDataIntoStructs") + + filePath := "./providers.json" + + data, err := os.ReadFile(filePath) + if err != nil { + return nil, err + } + + if err := json.Unmarshal(data, &providerObj); err != nil { + return nil, err + } + return providerObj, nil +} + +func NewJSONFileProviderVersionManager() (ProviderVersionManager, error) { + if data, err := LoadData(); err == nil { + return &JSONFileProviderVersionManager{data: data}, nil + } else { + return nil, err + } +} + +func (vm *JSONFileProviderVersionManager) ListProviderVersions(providerName string) (*ProviderVersionsResponse, error) { + + var providerVersions ProviderVersionsResponse + var platform Platform + + // Check if the provider ID exists + if providerData, exists := providerObj[providerName]; exists { + // Add the matched provider's version details to the ProviderVersionsResponse + for version, versionMetadata := range providerData { + var versionItem VersionItem + versionItem.Version = version + versionItem.Protocols = versionMetadata.Protocols + for _, versionPlatforms := range versionMetadata.Platforms { + platform.OS = versionPlatforms.OS + platform.Arch = versionPlatforms.Arch + versionItem.Platforms = append(versionItem.Platforms, platform) + } + providerVersions.Versions = append(providerVersions.Versions, versionItem) + } + + } else { + errMsg := fmt.Sprintf("failed to retrieve the list of versions for %s", providerName) + return nil, errors.New(errMsg) + } + + return &providerVersions, nil +} + +func (vm *JSONFileProviderVersionManager) GetVersionData(providerName string, version string, os string, arch string) (*PlatformMetadataResponse, error) { + + var providerMetadata PlatformMetadataResponse + var outputExists bool + + // Check if the provider ID exists + if providerData, exists := providerObj[providerName]; exists { + // Check if the version exists for the provider + if versionData, exists := providerData[version]; exists { + for _, platform := range versionData.Platforms { + if platform.OS == os && platform.Arch == arch { + outputExists = true + // Add the matched platform details to the providerMetadata + providerMetadata.Protocols = versionData.Protocols + providerMetadata.OS = platform.OS + providerMetadata.Arch = platform.Arch + providerMetadata.Filename = platform.Filename + providerMetadata.DownloadURL = platform.DownloadURL + providerMetadata.ShasumsURL = platform.ShasumsURL + providerMetadata.ShasumsSigURL = platform.ShasumsSignatureURL + providerMetadata.Shasum = platform.Shasum + providerMetadata.SigningKeys = platform.SigningKeys + break + } else { + outputExists = false + } + } + } else { + errMsg := fmt.Sprintf("failed to retrieve version: %s for: %s", version, providerName) + return nil, errors.New(errMsg) + } + } else { + errMsg := fmt.Sprintf("failed to retrieve : %s", providerName) + return nil, errors.New(errMsg) + } + + if outputExists { + return &providerMetadata, nil + } else { + errMsg := fmt.Sprintf("failed to retrieve provider %s (version %s) for os: %s and arch: %s", providerName, version, os, arch) + return nil, errors.New(errMsg) + } + +} diff --git a/internal/restapi/browse/frontend/build/.well-known/terraform.json b/internal/restapi/browse/frontend/build/.well-known/terraform.json index 037b6dd..76c764e 100644 --- a/internal/restapi/browse/frontend/build/.well-known/terraform.json +++ b/internal/restapi/browse/frontend/build/.well-known/terraform.json @@ -1,3 +1,4 @@ { - "modules.v1": "/modules/v1" + "modules.v1": "/modules/v1", + "providers.v1": "/providers/v1/" } \ No newline at end of file diff --git a/internal/restapi/browse/frontend/build/asset-manifest.json b/internal/restapi/browse/frontend/build/asset-manifest.json index 5ecf1fd..965653b 100644 --- a/internal/restapi/browse/frontend/build/asset-manifest.json +++ b/internal/restapi/browse/frontend/build/asset-manifest.json @@ -1,20 +1,20 @@ { "files": { "main.css": "/static/css/main.a593e941.css", - "main.js": "/static/js/main.248c1869.js", + "main.js": "/static/js/main.d65f24d1.js", "static/js/496.c4cdc242.chunk.js": "/static/js/496.c4cdc242.chunk.js", "static/media/not-found-1.jpg": "/static/media/not-found-1.3eec1753dacc2df2dcac.jpg", - "static/media/providers.svg": "/static/media/providers.6ba0b53e84665662440dd84573d617fb.svg", + "static/media/providers.svg": "/static/media/providers.b23747e853582f7fef85d036a949de8f.svg", "static/media/server-error-1.jpg": "/static/media/server-error-1.6a4af50aed762b81d561.jpg", - "static/media/release.svg": "/static/media/release.08bd319f2eeb6be6a24e6af1ceb025dd.svg", + "static/media/release.svg": "/static/media/release.75050f51cb3da5cd45e3eb3dba9b8991.svg", "static/media/modules.png": "/static/media/modules.df4734ecc28bffc1b755.png", "index.html": "/index.html", "main.a593e941.css.map": "/static/css/main.a593e941.css.map", - "main.248c1869.js.map": "/static/js/main.248c1869.js.map", + "main.d65f24d1.js.map": "/static/js/main.d65f24d1.js.map", "496.c4cdc242.chunk.js.map": "/static/js/496.c4cdc242.chunk.js.map" }, "entrypoints": [ "static/css/main.a593e941.css", - "static/js/main.248c1869.js" + "static/js/main.d65f24d1.js" ] } \ No newline at end of file diff --git a/internal/restapi/browse/frontend/build/index.html b/internal/restapi/browse/frontend/build/index.html index 678f23d..4fff0e3 100644 --- a/internal/restapi/browse/frontend/build/index.html +++ b/internal/restapi/browse/frontend/build/index.html @@ -1 +1 @@ -Terrarium: Synamedia Terraform Registry
\ No newline at end of file +Terrarium: Synamedia Terraform Registry
\ No newline at end of file diff --git a/internal/restapi/browse/frontend/build/static/css/main.a593e941.css.map b/internal/restapi/browse/frontend/build/static/css/main.a593e941.css.map index 43bfd5a..2bb50b3 100644 --- a/internal/restapi/browse/frontend/build/static/css/main.a593e941.css.map +++ b/internal/restapi/browse/frontend/build/static/css/main.a593e941.css.map @@ -1 +1 @@ -{"version":3,"file":"static/css/main.a593e941.css","mappings":"AAAA,EACE,QAAS,CACT,SACF,CAEA,UACE,eACF,CAEA,MACE,wBACF,CAEA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF,CAEA,oBACE,SACF,CAEA,0BACE,kBAAmB,CACnB,wBAAyB,CACzB,kBACF,CAEA,0BACE,kBACF,CAEA,YAEE,kBAAmB,CADnB,aAEF,CC5CA,aAEI,UAAY,CACZ,cAAe,CAFf,oBAGJ,CAEA,cACI,wBAAyB,CAIzB,0BAA2B,CAD3B,2BAA4B,CAF5B,UAAY,CACZ,YAGJ,CAEA,MACI,YACJ,CACA,MACI,cACJ,CAEA,YAGI,wBAA0B,CAF1B,yBAA2B,CAC3B,4BAA8B,CAE9B,8BACJ,CC1BA,cACI,eAAgB,CAChB,eAAgB,CAChB,sBAAuB,CACvB,kBACJ,CAEA,0BACI,iBACJ","sources":["index.css","App.css","styles/releases.css"],"sourcesContent":["* {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\nhtml, body {\r\n min-height: 100%;\r\n}\r\n\r\n#root {\r\n background-color: #f2f2f2;\r\n}\r\n\r\nbody {\r\n margin: 0;\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\r\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\r\n sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\ncode {\r\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\r\n monospace;\r\n}\r\n\r\n::-webkit-scrollbar {\r\n width: 8px;\r\n}\r\n\r\n::-webkit-scrollbar-thumb {\r\n background: #1976d2;\r\n border: 1px solid #f2f2f2;\r\n border-radius: 20px;\r\n}\r\n\r\n::-webkit-scrollbar-track {\r\n background: #f2f2f2;\r\n}\r\n\r\n::selection {\r\n color: #f2f2f2;\r\n background: #1976d2;\r\n}\r\n",".nodecorlink {\r\n text-decoration: none;\r\n color: black;\r\n cursor: pointer;\r\n}\r\n\r\n.headingcolor {\r\n background-color: #1976d2;\r\n color: white;\r\n padding: 10px;\r\n border-top-right-radius: 4px;\r\n border-top-left-radius: 4px;\r\n}\r\n\r\n.flex {\r\n display: flex;\r\n}\r\n.wrap {\r\n flex-wrap: wrap;\r\n}\r\n\r\n.logo-title {\r\n font-weight: 700 !important;\r\n letter-spacing: 5px !important;\r\n font-size: 14px !important;\r\n text-decoration: none !important;\r\n}\r\n",".word-wrapper {\r\n max-width: 150px;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n}\r\n\r\n.MuiCircularProgress-root {\r\n align-self: center;\r\n}\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/css/main.a593e941.css","mappings":"AAAA,EACE,QAAS,CACT,SACF,CAEA,UACE,eACF,CAEA,MACE,wBACF,CAEA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF,CAEA,oBACE,SACF,CAEA,0BACE,kBAAmB,CACnB,wBAAyB,CACzB,kBACF,CAEA,0BACE,kBACF,CAEA,YAEE,kBAAmB,CADnB,aAEF,CC5CA,aAEI,UAAY,CACZ,cAAe,CAFf,oBAGJ,CAEA,cACI,wBAAyB,CAIzB,0BAA2B,CAD3B,2BAA4B,CAF5B,UAAY,CACZ,YAGJ,CAEA,MACI,YACJ,CACA,MACI,cACJ,CAEA,YAGI,wBAA0B,CAF1B,yBAA2B,CAC3B,4BAA8B,CAE9B,8BACJ,CC1BA,cACI,eAAgB,CAChB,eAAgB,CAChB,sBAAuB,CACvB,kBACJ,CAEA,0BACI,iBACJ","sources":["index.css","App.css","styles/releases.css"],"sourcesContent":["* {\n margin: 0;\n padding: 0;\n}\n\nhtml, body {\n min-height: 100%;\n}\n\n#root {\n background-color: #f2f2f2;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n\n::-webkit-scrollbar {\n width: 8px;\n}\n\n::-webkit-scrollbar-thumb {\n background: #1976d2;\n border: 1px solid #f2f2f2;\n border-radius: 20px;\n}\n\n::-webkit-scrollbar-track {\n background: #f2f2f2;\n}\n\n::selection {\n color: #f2f2f2;\n background: #1976d2;\n}\n",".nodecorlink {\n text-decoration: none;\n color: black;\n cursor: pointer;\n}\n\n.headingcolor {\n background-color: #1976d2;\n color: white;\n padding: 10px;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n\n.flex {\n display: flex;\n}\n.wrap {\n flex-wrap: wrap;\n}\n\n.logo-title {\n font-weight: 700 !important;\n letter-spacing: 5px !important;\n font-size: 14px !important;\n text-decoration: none !important;\n}\n",".word-wrapper {\n max-width: 150px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.MuiCircularProgress-root {\n align-self: center;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/internal/restapi/browse/frontend/build/static/js/main.248c1869.js b/internal/restapi/browse/frontend/build/static/js/main.d65f24d1.js similarity index 92% rename from internal/restapi/browse/frontend/build/static/js/main.248c1869.js rename to internal/restapi/browse/frontend/build/static/js/main.d65f24d1.js index 33ef527..52296f3 100644 --- a/internal/restapi/browse/frontend/build/static/js/main.248c1869.js +++ b/internal/restapi/browse/frontend/build/static/js/main.d65f24d1.js @@ -1,3 +1,3 @@ -/*! For license information please see main.248c1869.js.LICENSE.txt */ -!function(){var e={3361:function(e,t,n){"use strict";n.d(t,{Z:function(){return oe}});var r=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.insertionPoint?t.insertionPoint.nextSibling:t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.insertionPoint=e.insertionPoint,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)===0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t0?c(x,--y):0,v--,10===b&&(v=1,h--),b}function Z(){return b=y2||R(b)>3?"":" "}function N(e,t){for(;--t&&Z()&&!(b<48||b>102||b>57&&b<65||b>70&&b<97););return P(e,E()+(t<6&&32==C()&&32==Z()))}function z(e){for(;Z();)switch(b){case e:return y;case 34:case 39:34!==e&&39!==e&&z(b);break;case 40:41===e&&z(e);break;case 92:Z()}return y}function I(e,t){for(;Z()&&e+b!==57&&(e+b!==84||47!==C()););return"/*"+P(t,y-1)+"*"+a(47===e?e:Z())}function A(e){for(;!R(C());)Z();return P(e,y)}var L="-ms-",_="-moz-",F="-webkit-",D="comm",B="rule",W="decl",V="@keyframes";function H(e,t){for(var n="",r=p(e),o=0;o0&&f(_)-g&&m(b>32?Q(_+";",r,n,g-1):Q(u(_," ","")+";",r,n,g-2),p);break;case 59:_+=";";default:if(m(L=K(_,t,n,h,v,o,d,T,M=[],z=[],g),i),123===R)if(0===v)q(_,t,L,L,M,i,g,d,z);else switch(99===y&&110===c(_,3)?100:y){case 100:case 108:case 109:case 115:q(e,L,L,r&&m(K(e,L,L,0,0,o,d,T,o,M=[],g),z),o,z,g,d,r?M:z);break;default:q(_,L,L,L,[""],z,0,d,z)}}h=v=b=0,w=P=1,T=_="",g=l;break;case 58:g=1+f(_),b=x;default:if(w<1)if(123==R)--w;else if(125==R&&0==w++&&125==S())continue;switch(_+=a(R),R*w){case 38:P=v>0?1:(_+="\f",-1);break;case 44:d[h++]=(f(_)-1)*P,P=1;break;case 64:45===C()&&(_+=j(Z())),y=C(),v=g=f(T=_+=A(E())),R++;break;case 45:45===x&&2==f(_)&&(w=0)}}return i}function K(e,t,n,r,a,i,s,c,f,m,h){for(var v=a-1,g=0===a?i:[""],y=p(g),b=0,x=0,k=0;b0?g[S]+" "+Z:u(Z,/&\f/g,g[S])))&&(f[k++]=C);return w(e,t,n,0===a?B:c,f,m,h)}function G(e,t,n){return w(e,t,n,D,a(b),d(e,2,-2),0)}function Q(e,t,n,r){return w(e,t,n,W,d(e,0,r),d(e,r+1,-1),r)}var Y=function(e,t,n){for(var r=0,o=0;r=o,o=C(),38===r&&12===o&&(t[n]=1),!R(o);)Z();return P(e,y)},X=function(e,t){return M(function(e,t){var n=-1,r=44;do{switch(R(r)){case 0:38===r&&12===C()&&(t[n]=1),e[n]+=Y(y-1,t,n);break;case 2:e[n]+=j(r);break;case 4:if(44===r){e[++n]=58===C()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=a(r)}}while(r=Z());return e}(T(e),t))},J=new WeakMap,ee=function(e){if("rule"===e.type&&e.parent&&!(e.length<1)){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||J.get(n))&&!r){J.set(e,!0);for(var o=[],a=X(t,o),i=n.props,l=0,u=0;l6)switch(c(e,t+1)){case 109:if(45!==c(e,t+4))break;case 102:return u(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1-moz-"+(108==c(e,t+3)?"$3":"$2-$3"))+e;case 115:return~s(e,"stretch")?ne(u(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==c(e,t+1))break;case 6444:switch(c(e,f(e)-3-(~s(e,"!important")&&10))){case 107:return u(e,":",":-webkit-")+e;case 101:return u(e,/(.+:)([^;!]+)(;|!.+)?/,"$1-webkit-"+(45===c(e,14)?"inline-":"")+"box$3$1"+"-webkit-$2$3$1"+"-ms-$2box$3")+e}break;case 5936:switch(c(e,t+11)){case 114:return F+e+L+u(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return F+e+L+u(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return F+e+L+u(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return F+e+L+e+e}return e}var re=[function(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case W:e.return=ne(e.value,e.length);break;case V:return H([k(e,{value:u(e.value,"@","@-webkit-")})],r);case B:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return H([k(e,{props:[u(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return H([k(e,{props:[u(t,/:(plac\w+)/,":-webkit-input-$1")]}),k(e,{props:[u(t,/:(plac\w+)/,":-moz-$1")]}),k(e,{props:[u(t,/:(plac\w+)/,"-ms-input-$1")]})],r)}return""}))}}],oe=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var o=e.stylisPlugins||re;var a,i,l={},u=[];a=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+u;return{name:s,styles:o,next:f}}},2561:function(e,t,n){"use strict";var r;n.d(t,{L:function(){return i},j:function(){return l}});var o=n(2791),a=!!(r||(r=n.t(o,2))).useInsertionEffect&&(r||(r=n.t(o,2))).useInsertionEffect,i=a||function(e){return e()},l=a||o.useLayoutEffect},5438:function(e,t,n){"use strict";n.d(t,{My:function(){return a},fp:function(){return r},hC:function(){return o}});function r(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}var o=function(e,t,n){var r=e.key+"-"+t.name;!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles)},a=function(e,t,n){o(e,t,n);var r=e.key+"-"+t.name;if(void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+r:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}}},1972:function(e,t,n){"use strict";var r=n(4836);t.Z=void 0;var o=r(n(5649)),a=n(184),i=(0,o.default)((0,a.jsx)("path",{d:"M7.11 8.53 5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z"}),"RotateLeft");t.Z=i},5403:function(e,t,n){"use strict";var r=n(4836);t.Z=void 0;var o=r(n(5649)),a=n(184),i=(0,o.default)((0,a.jsx)("path",{d:"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"}),"Search");t.Z=i},5649:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r.createSvgIcon}});var r=n(4454)},7107:function(e,t,n){"use strict";n.d(t,{Z:function(){return B}});var r=n(7462),o=n(3366),a=n(6189),i=n(2466),l=n(5080),u=n(7416),s=n(104),c=n(4942);function d(e,t){var n;return(0,r.Z)({toolbar:(n={minHeight:56},(0,c.Z)(n,e.up("xs"),{"@media (orientation: landscape)":{minHeight:48}}),(0,c.Z)(n,e.up("sm"),{minHeight:64}),n)},t)}var f=n(2065),p={black:"#000",white:"#fff"},m={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"},h={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},v={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},g={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},y={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},b={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},x={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},w=["mode","contrastThreshold","tonalOffset"],k={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:p.white,default:p.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},S={text:{primary:p.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:p.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function Z(e,t,n,r){var o=r.light||r,a=r.dark||1.5*r;e[t]||(e.hasOwnProperty(n)?e[t]=e[n]:"light"===t?e.light=(0,f.$n)(e.main,o):"dark"===t&&(e.dark=(0,f._j)(e.main,a)))}function C(e){var t=e.mode,n=void 0===t?"light":t,l=e.contrastThreshold,u=void 0===l?3:l,s=e.tonalOffset,c=void 0===s?.2:s,d=(0,o.Z)(e,w),C=e.primary||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:y[200],light:y[50],dark:y[400]}:{main:y[700],light:y[400],dark:y[800]}}(n),E=e.secondary||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:h[200],light:h[50],dark:h[400]}:{main:h[500],light:h[300],dark:h[700]}}(n),P=e.error||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:v[500],light:v[300],dark:v[700]}:{main:v[700],light:v[400],dark:v[800]}}(n),R=e.info||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:b[400],light:b[300],dark:b[700]}:{main:b[700],light:b[500],dark:b[900]}}(n),T=e.success||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:x[400],light:x[300],dark:x[700]}:{main:x[800],light:x[500],dark:x[900]}}(n),M=e.warning||function(){return"dark"===(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light")?{main:g[400],light:g[300],dark:g[700]}:{main:"#ed6c02",light:g[500],dark:g[900]}}(n);function j(e){return(0,f.mi)(e,S.text.primary)>=u?S.text.primary:k.text.primary}var O=function(e){var t=e.color,n=e.name,o=e.mainShade,i=void 0===o?500:o,l=e.lightShade,u=void 0===l?300:l,s=e.darkShade,d=void 0===s?700:s;if(!(t=(0,r.Z)({},t)).main&&t[i]&&(t.main=t[i]),!t.hasOwnProperty("main"))throw new Error((0,a.Z)(11,n?" (".concat(n,")"):"",i));if("string"!==typeof t.main)throw new Error((0,a.Z)(12,n?" (".concat(n,")"):"",JSON.stringify(t.main)));return Z(t,"light",u,c),Z(t,"dark",d,c),t.contrastText||(t.contrastText=j(t.main)),t},N={dark:S,light:k};return(0,i.Z)((0,r.Z)({common:(0,r.Z)({},p),mode:n,primary:O({color:C,name:"primary"}),secondary:O({color:E,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:O({color:P,name:"error"}),warning:O({color:M,name:"warning"}),info:O({color:R,name:"info"}),success:O({color:T,name:"success"}),grey:m,contrastThreshold:u,getContrastText:j,augmentColor:O,tonalOffset:c},N[n]),d)}var E=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];var P={textTransform:"uppercase"},R='"Roboto", "Helvetica", "Arial", sans-serif';function T(e,t){var n="function"===typeof t?t(e):t,a=n.fontFamily,l=void 0===a?R:a,u=n.fontSize,s=void 0===u?14:u,c=n.fontWeightLight,d=void 0===c?300:c,f=n.fontWeightRegular,p=void 0===f?400:f,m=n.fontWeightMedium,h=void 0===m?500:m,v=n.fontWeightBold,g=void 0===v?700:v,y=n.htmlFontSize,b=void 0===y?16:y,x=n.allVariants,w=n.pxToRem,k=(0,o.Z)(n,E);var S=s/14,Z=w||function(e){return"".concat(e/b*S,"rem")},C=function(e,t,n,o,a){return(0,r.Z)({fontFamily:l,fontWeight:e,fontSize:Z(t),lineHeight:n},l===R?{letterSpacing:"".concat((i=o/t,Math.round(1e5*i)/1e5),"em")}:{},a,x);var i},T={h1:C(d,96,1.167,-1.5),h2:C(d,60,1.2,-.5),h3:C(p,48,1.167,0),h4:C(p,34,1.235,.25),h5:C(p,24,1.334,0),h6:C(h,20,1.6,.15),subtitle1:C(p,16,1.75,.15),subtitle2:C(h,14,1.57,.1),body1:C(p,16,1.5,.15),body2:C(p,14,1.43,.15),button:C(h,14,1.75,.4,P),caption:C(p,12,1.66,.4),overline:C(p,12,2.66,1,P),inherit:{fontFamily:"inherit",fontWeight:"inherit",fontSize:"inherit",lineHeight:"inherit",letterSpacing:"inherit"}};return(0,i.Z)((0,r.Z)({htmlFontSize:b,pxToRem:Z,fontFamily:l,fontSize:s,fontWeightLight:d,fontWeightRegular:p,fontWeightMedium:h,fontWeightBold:g},T),k,{clone:!1})}function M(){return["".concat(arguments.length<=0?void 0:arguments[0],"px ").concat(arguments.length<=1?void 0:arguments[1],"px ").concat(arguments.length<=2?void 0:arguments[2],"px ").concat(arguments.length<=3?void 0:arguments[3],"px rgba(0,0,0,").concat(.2,")"),"".concat(arguments.length<=4?void 0:arguments[4],"px ").concat(arguments.length<=5?void 0:arguments[5],"px ").concat(arguments.length<=6?void 0:arguments[6],"px ").concat(arguments.length<=7?void 0:arguments[7],"px rgba(0,0,0,").concat(.14,")"),"".concat(arguments.length<=8?void 0:arguments[8],"px ").concat(arguments.length<=9?void 0:arguments[9],"px ").concat(arguments.length<=10?void 0:arguments[10],"px ").concat(arguments.length<=11?void 0:arguments[11],"px rgba(0,0,0,").concat(.12,")")].join(",")}var j=["none",M(0,2,1,-1,0,1,1,0,0,1,3,0),M(0,3,1,-2,0,2,2,0,0,1,5,0),M(0,3,3,-2,0,3,4,0,0,1,8,0),M(0,2,4,-1,0,4,5,0,0,1,10,0),M(0,3,5,-1,0,5,8,0,0,1,14,0),M(0,3,5,-1,0,6,10,0,0,1,18,0),M(0,4,5,-2,0,7,10,1,0,2,16,1),M(0,5,5,-3,0,8,10,1,0,3,14,2),M(0,5,6,-3,0,9,12,1,0,3,16,2),M(0,6,6,-3,0,10,14,1,0,4,18,3),M(0,6,7,-4,0,11,15,1,0,4,20,3),M(0,7,8,-4,0,12,17,2,0,5,22,4),M(0,7,8,-4,0,13,19,2,0,5,24,4),M(0,7,9,-4,0,14,21,2,0,5,26,4),M(0,8,9,-5,0,15,22,2,0,6,28,5),M(0,8,10,-5,0,16,24,2,0,6,30,5),M(0,8,11,-5,0,17,26,2,0,6,32,5),M(0,9,11,-5,0,18,28,2,0,7,34,6),M(0,9,12,-6,0,19,29,2,0,7,36,6),M(0,10,13,-6,0,20,31,3,0,8,38,7),M(0,10,13,-6,0,21,33,3,0,8,40,7),M(0,10,14,-6,0,22,35,3,0,8,42,7),M(0,11,14,-7,0,23,36,3,0,9,44,8),M(0,11,15,-7,0,24,38,3,0,9,46,8)],O=["duration","easing","delay"],N={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},z={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function I(e){return"".concat(Math.round(e),"ms")}function A(e){if(!e)return 0;var t=e/36;return Math.round(10*(4+15*Math.pow(t,.25)+t/5))}function L(e){var t=(0,r.Z)({},N,e.easing),n=(0,r.Z)({},z,e.duration);return(0,r.Z)({getAutoHeightDuration:A,create:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["all"],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=r.duration,i=void 0===a?n.standard:a,l=r.easing,u=void 0===l?t.easeInOut:l,s=r.delay,c=void 0===s?0:s;(0,o.Z)(r,O);return(Array.isArray(e)?e:[e]).map((function(e){return"".concat(e," ").concat("string"===typeof i?i:I(i)," ").concat(u," ").concat("string"===typeof c?c:I(c))})).join(",")}},e,{easing:t,duration:n})}var _={mobileStepper:1e3,fab:1050,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500},F=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function D(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.mixins,n=void 0===t?{}:t,c=e.palette,f=void 0===c?{}:c,p=e.transitions,m=void 0===p?{}:p,h=e.typography,v=void 0===h?{}:h,g=(0,o.Z)(e,F);if(e.vars)throw new Error((0,a.Z)(18));var y=C(f),b=(0,l.Z)(e),x=(0,i.Z)(b,{mixins:d(b.breakpoints,n),palette:y,shadows:j.slice(),typography:T(y,v),transitions:L(m),zIndex:(0,r.Z)({},_)});x=(0,i.Z)(x,g);for(var w=arguments.length,k=new Array(w>1?w-1:0),S=1;S96?f:p},h=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o}return"function"!==typeof r&&n&&(r=e.__emotion_forwardProp),r},v=function(e){var t=e.cache,n=e.serialized,r=e.isStringTag;(0,s.hC)(t,n,r);(0,d.L)((function(){return(0,s.My)(t,n,r)}));return null},g=function e(t,n){var a,i,l=t.__emotion_real===t,d=l&&t.__emotion_base||t;void 0!==n&&(a=n.label,i=n.target);var f=h(t,n,l),p=f||m(d),g=!p("as");return function(){var y=arguments,b=l&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==a&&b.push("label:"+a+";"),null==y[0]||void 0===y[0].raw)b.push.apply(b,y);else{0,b.push(y[0][0]);for(var x=y.length,w=1;w0&&void 0!==arguments[0]?arguments[0]:{},n=null==(e=t.keys)?void 0:e.reduce((function(e,n){return e[t.up(n)]={},e}),{});return n||{}}function u(e,t){return e.reduce((function(e,t){var n=e[t];return(!n||0===Object.keys(n).length)&&delete e[t],e}),t)}function s(e){for(var t=l(e),n=arguments.length,o=new Array(n>1?n-1:0),a=1;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(Math.max(t,e),n)}function a(e){if(e.type)return e;if("#"===e.charAt(0))return a(function(e){e=e.slice(1);var t=new RegExp(".{1,".concat(e.length>=6?2:1,"}"),"g"),n=e.match(t);return n&&1===n[0].length&&(n=n.map((function(e){return e+e}))),n?"rgb".concat(4===n.length?"a":"","(").concat(n.map((function(e,t){return t<3?parseInt(e,16):Math.round(parseInt(e,16)/255*1e3)/1e3})).join(", "),")"):""}(e));var t=e.indexOf("("),n=e.substring(0,t);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error((0,r.Z)(9,e));var o,i=e.substring(t+1,e.length-1);if("color"===n){if(o=(i=i.split(" ")).shift(),4===i.length&&"/"===i[3].charAt(0)&&(i[3]=i[3].slice(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(o))throw new Error((0,r.Z)(10,o))}else i=i.split(",");return{type:n,values:i=i.map((function(e){return parseFloat(e)})),colorSpace:o}}function i(e){var t=e.type,n=e.colorSpace,r=e.values;return-1!==t.indexOf("rgb")?r=r.map((function(e,t){return t<3?parseInt(e,10):e})):-1!==t.indexOf("hsl")&&(r[1]="".concat(r[1],"%"),r[2]="".concat(r[2],"%")),r=-1!==t.indexOf("color")?"".concat(n," ").concat(r.join(" ")):"".concat(r.join(", ")),"".concat(t,"(").concat(r,")")}function l(e){var t="hsl"===(e=a(e)).type||"hsla"===e.type?a(function(e){var t=(e=a(e)).values,n=t[0],r=t[1]/100,o=t[2]/100,l=r*Math.min(o,1-o),u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(e+n/30)%12;return o-l*Math.max(Math.min(t-3,9-t,1),-1)},s="rgb",c=[Math.round(255*u(0)),Math.round(255*u(8)),Math.round(255*u(4))];return"hsla"===e.type&&(s+="a",c.push(t[3])),i({type:s,values:c})}(e)).values:e.values;return t=t.map((function(t){return"color"!==e.type&&(t/=255),t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)})),Number((.2126*t[0]+.7152*t[1]+.0722*t[2]).toFixed(3))}function u(e,t){var n=l(e),r=l(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}function s(e,t){return e=a(e),t=o(t),"rgb"!==e.type&&"hsl"!==e.type||(e.type+="a"),"color"===e.type?e.values[3]="/".concat(t):e.values[3]=t,i(e)}function c(e,t){if(e=a(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]*=1-t;else if(-1!==e.type.indexOf("rgb")||-1!==e.type.indexOf("color"))for(var n=0;n<3;n+=1)e.values[n]*=1-t;return i(e)}function d(e,t){if(e=a(e),t=o(t),-1!==e.type.indexOf("hsl"))e.values[2]+=(100-e.values[2])*t;else if(-1!==e.type.indexOf("rgb"))for(var n=0;n<3;n+=1)e.values[n]+=(255-e.values[n])*t;else if(-1!==e.type.indexOf("color"))for(var r=0;r<3;r+=1)e.values[r]+=(1-e.values[r])*t;return i(e)}},4046:function(e,t,n){"use strict";n.d(t,{ZP:function(){return R},x9:function(){return k}});var r=n(885),o=n(2982),a=n(3366),i=n(7462),l=n(2421),u=n(2466),s=n(5080),c=n(1122),d=["variant"];function f(e){return 0===e.length}function p(e){var t=e.variant,n=(0,a.Z)(e,d),r=t||"";return Object.keys(n).sort().forEach((function(t){r+="color"===t?f(r)?e[t]:(0,c.Z)(e[t]):"".concat(f(r)?t:(0,c.Z)(t)).concat((0,c.Z)(e[t].toString()))})),r}var m=n(104),h=["name","slot","skipVariantsResolver","skipSx","overridesResolver"];function v(e){return"string"===typeof e&&e.charCodeAt(0)>96}var g=function(e,t){return t.components&&t.components[e]&&t.components[e].styleOverrides?t.components[e].styleOverrides:null},y=function(e){var t={};return e&&e.forEach((function(e){var n=p(e.props);t[n]=e.style})),t},b=function(e,t){var n=[];return t&&t.components&&t.components[e]&&t.components[e].variants&&(n=t.components[e].variants),y(n)},x=function(e,t,n){var r=e.ownerState,o=void 0===r?{}:r,a=[];return n&&n.forEach((function(n){var r=!0;Object.keys(n.props).forEach((function(t){o[t]!==n.props[t]&&e[t]!==n.props[t]&&(r=!1)})),r&&a.push(t[p(n.props)])})),a},w=function(e,t,n,r){var o,a=null==n||null==(o=n.components)||null==(o=o[r])?void 0:o.variants;return x(e,t,a)};function k(e){return"ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}var S=(0,s.Z)(),Z=function(e){return e?e.charAt(0).toLowerCase()+e.slice(1):e};function C(e){var t,n=e.defaultTheme,r=e.theme,o=e.themeId;return t=r,0===Object.keys(t).length?n:r[o]||r}function E(e){return e?function(t,n){return n[e]}:null}var P=function(e){var t,n=e.styledArg,r=e.props,a=e.defaultTheme,l=e.themeId,u=n((0,i.Z)({},r,{theme:C((0,i.Z)({},r,{defaultTheme:a,themeId:l}))}));if(u&&u.variants&&(t=u.variants,delete u.variants),t){var s=x(r,y(t),t);return[u].concat((0,o.Z)(s))}return u};function R(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.themeId,n=e.defaultTheme,s=void 0===n?S:n,c=e.rootShouldForwardProp,d=void 0===c?k:c,f=e.slotShouldForwardProp,p=void 0===f?k:f,R=function(e){return(0,m.Z)((0,i.Z)({},e,{theme:C((0,i.Z)({},e,{defaultTheme:s,themeId:t}))}))};return R.__mui_systemSx=!0,function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,l.Co)(e,(function(e){return e.filter((function(e){return!(null!=e&&e.__mui_systemSx)}))}));var c,f=n.name,m=n.slot,S=n.skipVariantsResolver,T=n.skipSx,M=n.overridesResolver,j=void 0===M?E(Z(m)):M,O=(0,a.Z)(n,h),N=void 0!==S?S:m&&"Root"!==m&&"root"!==m||!1,z=T||!1;var I=k;"Root"===m||"root"===m?I=d:m?I=p:v(e)&&(I=void 0);var A=(0,l.ZP)(e,(0,i.Z)({shouldForwardProp:I,label:c},O)),L=function(n){for(var a=arguments.length,l=new Array(a>1?a-1:0),c=1;c0){var v=new Array(h).fill("");(m=[].concat((0,o.Z)(n),(0,o.Z)(v))).raw=[].concat((0,o.Z)(n.raw),(0,o.Z)(v))}var k=A.apply(void 0,[m].concat((0,o.Z)(p)));return e.muiName&&(k.muiName=e.muiName),k};return A.withConfig&&(L.withConfig=A.withConfig),L}}},5080:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(7462),o=n(3366),a=n(2466),i=n(4942),l=["values","unit","step"];function u(e){var t=e.values,n=void 0===t?{xs:0,sm:600,md:900,lg:1200,xl:1536}:t,a=e.unit,u=void 0===a?"px":a,s=e.step,c=void 0===s?5:s,d=(0,o.Z)(e,l),f=function(e){var t=Object.keys(e).map((function(t){return{key:t,val:e[t]}}))||[];return t.sort((function(e,t){return e.val-t.val})),t.reduce((function(e,t){return(0,r.Z)({},e,(0,i.Z)({},t.key,t.val))}),{})}(n),p=Object.keys(f);function m(e){var t="number"===typeof n[e]?n[e]:e;return"@media (min-width:".concat(t).concat(u,")")}function h(e){var t="number"===typeof n[e]?n[e]:e;return"@media (max-width:".concat(t-c/100).concat(u,")")}function v(e,t){var r=p.indexOf(t);return"@media (min-width:".concat("number"===typeof n[e]?n[e]:e).concat(u,") and ")+"(max-width:".concat((-1!==r&&"number"===typeof n[p[r]]?n[p[r]]:t)-c/100).concat(u,")")}return(0,r.Z)({keys:p,values:f,up:m,down:h,between:v,only:function(e){return p.indexOf(e)+10&&void 0!==arguments[0]?arguments[0]:8;if(e.mui)return e;var t=(0,c.hB)({spacing:e}),n=function(){for(var e=arguments.length,n=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=e.breakpoints,n=void 0===t?{}:t,i=e.palette,l=void 0===i?{}:i,c=e.spacing,h=e.shape,v=void 0===h?{}:h,g=(0,o.Z)(e,m),y=u(n),b=d(c),x=(0,a.Z)({breakpoints:y,direction:"ltr",components:{},palette:(0,r.Z)({mode:"light"},l),spacing:b,shape:(0,r.Z)({},s,v)},g),w=arguments.length,k=new Array(w>1?w-1:0),S=1;S2){if(!s[e])return[e];e=s[e]}var t=e.split(""),n=(0,r.Z)(t,2),o=n[0],a=n[1],i=l[o],c=u[a]||"";return Array.isArray(c)?c.map((function(e){return i+e})):[i+c]})),d=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd"],f=["p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"],p=[].concat(d,f);function m(e,t,n,r){var o,i=null!=(o=(0,a.DW)(e,t,!1))?o:n;return"number"===typeof i?function(e){return"string"===typeof e?e:i*e}:Array.isArray(i)?function(e){return"string"===typeof e?e:i[e]}:"function"===typeof i?i:function(){}}function h(e){return m(e,"spacing",8)}function v(e,t){if("string"===typeof t||null==t)return t;var n=e(Math.abs(t));return t>=0?n:"number"===typeof n?-n:"-".concat(n)}function g(e,t,n,r){if(-1===t.indexOf(n))return null;var a=function(e,t){return function(n){return e.reduce((function(e,r){return e[r]=v(t,n),e}),{})}}(c(n),r),i=e[n];return(0,o.k9)(e,i,a)}function y(e,t){var n=h(e.theme);return Object.keys(e).map((function(r){return g(e,t,r,n)})).reduce(i.Z,{})}function b(e){return y(e,d)}function x(e){return y(e,f)}function w(e){return y(e,p)}b.propTypes={},b.filterProps=d,x.propTypes={},x.filterProps=f,w.propTypes={},w.filterProps=p},8529:function(e,t,n){"use strict";n.d(t,{DW:function(){return i},Jq:function(){return l}});var r=n(4942),o=n(1122),a=n(1184);function i(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!t||"string"!==typeof t)return null;if(e&&e.vars&&n){var r="vars.".concat(t).split(".").reduce((function(e,t){return e&&e[t]?e[t]:null}),e);if(null!=r)return r}return t.split(".").reduce((function(e,t){return e&&null!=e[t]?e[t]:null}),e)}function l(e,t,n){var r,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;return r="function"===typeof e?e(n):Array.isArray(e)?e[n]||o:i(e,n)||o,t&&(r=t(r,o,e)),r}t.ZP=function(e){var t=e.prop,n=e.cssProperty,u=void 0===n?e.prop:n,s=e.themeKey,c=e.transform,d=function(e){if(null==e[t])return null;var n=e[t],d=i(e.theme,s)||{};return(0,a.k9)(e,n,(function(e){var n=l(d,c,e);return e===n&&"string"===typeof e&&(n=l(d,c,"".concat(t).concat("default"===e?"":(0,o.Z)(e)),e)),!1===u?n:(0,r.Z)({},u,n)}))};return d.propTypes={},d.filterProps=[t],d}},7416:function(e,t,n){"use strict";n.d(t,{Z:function(){return j}});var r=n(5682),o=n(8529),a=n(8247);var i=function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:null,t=o.useContext(a.T);return!t||i(t)?e:t},u=(0,r.Z)();var s=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:u;return l(e)}},7078:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(5735);var o=n(3459);function a(e){var t=e.props,n=e.name,a=e.defaultTheme,i=e.themeId,l=(0,o.Z)(a);i&&(l=l[i]||l);var u=function(e){var t=e.theme,n=e.name,o=e.props;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?(0,r.Z)(t.components[n].defaultProps,o):o}({theme:l,name:n,props:t});return u}},5902:function(e,t){"use strict";var n=function(e){return e},r=function(){var e=n;return{configure:function(t){e=t},generate:function(t){return e(t)},reset:function(){e=n}}}();t.Z=r},1122:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(6189);function o(e){if("string"!==typeof e)throw new Error((0,r.Z)(7));return e.charAt(0).toUpperCase()+e.slice(1)}},4419:function(e,t,n){"use strict";function r(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r={};return Object.keys(e).forEach((function(o){r[o]=e[o].reduce((function(e,r){if(r){var o=t(r);""!==o&&e.push(o),n&&n[r]&&e.push(n[r])}return e}),[]).join(" ")})),r}n.d(t,{Z:function(){return r}})},8949:function(e,t,n){"use strict";function r(){for(var e=arguments.length,t=new Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:166;function r(){for(var r=this,o=arguments.length,a=new Array(o),i=0;i2&&void 0!==arguments[2]?arguments[2]:{clone:!0},l=n.clone?(0,r.Z)({},e):e;return o(e)&&o(t)&&Object.keys(t).forEach((function(r){"__proto__"!==r&&(o(t[r])&&r in e&&o(e[r])?l[r]=i(e[r],t[r],n):n.clone?l[r]=o(t[r])?a(t[r]):t[r]:l[r]=t[r])})),l}},6189:function(e,t,n){"use strict";function r(e){for(var t="https://mui.com/production-error/?code="+e,n=1;n2&&void 0!==arguments[2]?arguments[2]:"Mui",a=o[t];return a?"".concat(n,"-").concat(a):"".concat(r.Z.generate(e),"-").concat(t)}},5878:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(1217);function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Mui",o={};return t.forEach((function(t){o[t]=(0,r.Z)(e,t,n)})),o}},4913:function(e,t,n){"use strict";function r(e){return e&&e.ownerDocument||document}n.d(t,{Z:function(){return r}})},5202:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(4913);function o(e){return(0,r.Z)(e).defaultView||window}},5735:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7462);function o(e,t){var n=(0,r.Z)({},t);return Object.keys(e).forEach((function(a){if(a.toString().match(/^(components|slots)$/))n[a]=(0,r.Z)({},e[a],n[a]);else if(a.toString().match(/^(componentsProps|slotProps)$/)){var i=e[a]||{},l=t[a];n[a]={},l&&Object.keys(l)?i&&Object.keys(i)?(n[a]=(0,r.Z)({},l),Object.keys(i).forEach((function(e){n[a][e]=o(i[e],l[e])}))):n[a]=l:n[a]=i}else void 0===n[a]&&(n[a]=e[a])})),n}},2971:function(e,t,n){"use strict";function r(e,t){"function"===typeof e?e(t):e&&(e.current=t)}n.d(t,{Z:function(){return r}})},2876:function(e,t,n){"use strict";var r=n(2791),o="undefined"!==typeof window?r.useLayoutEffect:r.useEffect;t.Z=o},7054:function(e,t,n){"use strict";var r=n(2791),o=n(2876);t.Z=function(e){var t=r.useRef(e);return(0,o.Z)((function(){t.current=e})),r.useRef((function(){return t.current.apply(void 0,arguments)})).current}},6117:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(2791),o=n(2971);function a(){for(var e=arguments.length,t=new Array(e),n=0;n