diff --git a/backend/custom/cloudflare/TurnStilleCaptcha.js b/backend/custom/cloudflare/TurnStilleCaptcha.js new file mode 100644 index 0000000..bb68c4b --- /dev/null +++ b/backend/custom/cloudflare/TurnStilleCaptcha.js @@ -0,0 +1,82 @@ +export class TurnStilleCaptcha { + sitekey = "{{.SiteKey}}"; + /** + * Initializes the TurnStilleCaptcha instance. + * Creates a container for the captcha and appends it to the target element. + * If the Cloudflare Turnstile script is already loaded, it runs the captcha. + * Otherwise, it loads the script and initializes the captcha with the given properties. + * @param {HTMLElement} target - The element to attach the captcha container to. + * @param {Object} [props={}] - Optional properties for captcha initialization, such as theme. + */ + + constructor(target, props = {}) { + // create holder + this.holder = document.createElement("div"); + this.holder.id = "turnstile-container"; + this.theme = props.theme || "auto"; + target.appendChild(this.holder); + + + // execute code + if (window.turnstile) { + this.runCaptcha(); + } else { + this.loadCloudflareScript(); + } + } + runCaptcha() { + setTimeout(() => { + if (globalThis.turnstileInstance) { + window.turnstile.remove(globalThis.turnstileInstance); + } + globalThis.turnstileInstance = window.turnstile.render(this.holder, { + sitekey: this.sitekey, + theme: this.theme, + callback: (token) => { + if (token) { + const event = new CustomEvent("token", { + detail: token, + bubbles: true, + }); + this.holder.dispatchEvent(event); + } + }, + error: (error) => { + const event = new CustomEvent("failure", { + detail: error, + bubbles: true, + }); + this.holder.dispatchEvent(event); + window.turnstile.reset(globalThis.turnstileInstance); + }, + }); + }, 1000); + } + + loadCloudflareScript() { + const script = document.createElement("script"); + script.id = "turnstile-script"; + script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js"; + // script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"; + script.async = true; + script.defer = true; + + script.onload = () => { + const event = new CustomEvent("loaded", { + detail: "Turnstile script loaded", + bubbles: true, + }); + this.holder.dispatchEvent(event); + + this.runCaptcha(); + }; + script.onerror = () => { + const event = new CustomEvent("failure", { + detail: "Failed to load Turnstile script", + bubbles: true, + }); + this.holder.dispatchEvent(event); + }; + document.head.appendChild(script); + } +} diff --git a/backend/custom/cloudflare/cloudflare.go b/backend/custom/cloudflare/cloudflare.go new file mode 100644 index 0000000..72cabf5 --- /dev/null +++ b/backend/custom/cloudflare/cloudflare.go @@ -0,0 +1,95 @@ +package cloudflare + +import ( + "bytes" + "encoding/json" + "errors" + "html/template" + "io" + "net/http" + "strings" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +var VerifyUrl = "https://challenges.cloudflare.com/turnstile/v0/siteverify" + +type TurnstileResponse struct { + Success bool `json:"success"` + ErrorCodes []string `json:"error-codes,omitempty"` + ChallengeTS string `json:"challenge_ts,omitempty"` + Hostname string `json:"hostname,omitempty"` +} + +type TurnStilleCaptcha struct { + SiteKey string + SecretKey string +} + +func ServeTurnstilleCaptchaJS(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.GET("/api/email/script.js", func(e *core.RequestEvent) error { + // www.abrasive.ma-al.pl + // siteKey: "0x4AAAAAABdgeAdu4Pxxovj3" + // secretKey: "0x4AAAAAABdgeHJDjMwmeX5aXaXGh6HWZbw" + + settings, err := GetSettings(app) + if err != nil { + return err + } + + file, err := JS.ReadFile("TurnStilleCaptcha.js") + if err != nil { + return err + } + templ, err := template.New("test").Parse(string(file)) + + buf := bytes.Buffer{} + templ.Execute(&buf, map[string]interface{}{ + "SiteKey": settings.SiteKey, + }) + if err != nil { + return err + } + + e.Response.Header().Set("Content-Type", "application/javascript") + return e.String(http.StatusOK, buf.String()) + }) +} + +func GetSettings(app *pocketbase.PocketBase) (*TurnStilleCaptcha, error) { + record, err := app.FindFirstRecordByFilter("settings", "key='turnstile'", nil) + + settings := TurnStilleCaptcha{} + json.Unmarshal([]byte(record.GetString("value")), &settings) + + if err != nil { + return nil, err + } + + return &settings, nil +} + +func VerifyTurnstile(app *pocketbase.PocketBase, token, ip string) error { + conf, err := GetSettings(app) + if err != nil { + return err + } + + data := map[string]string{"secret": conf.SecretKey, "response": token, "remoteip": ip} + jsonData, _ := json.Marshal(data) + resp, err := http.Post(VerifyUrl, "application/json", bytes.NewBuffer(jsonData)) + if err != nil { + return err + } + defer resp.Body.Close() + var turnstileResp TurnstileResponse + body, _ := io.ReadAll(resp.Body) + json.Unmarshal(body, &turnstileResp) + + if !turnstileResp.Success { + return errors.New(turnstileResp.ChallengeTS + ": " + strings.Join(turnstileResp.ErrorCodes, " ")) + } + return nil +} diff --git a/backend/custom/cloudflare/js.go b/backend/custom/cloudflare/js.go new file mode 100644 index 0000000..6a1e806 --- /dev/null +++ b/backend/custom/cloudflare/js.go @@ -0,0 +1,8 @@ +package cloudflare + +import ( + "embed" +) + +//go:embed TurnStilleCaptcha.js +var JS embed.FS diff --git a/backend/custom/custom.go b/backend/custom/custom.go new file mode 100644 index 0000000..e8c98c4 --- /dev/null +++ b/backend/custom/custom.go @@ -0,0 +1,61 @@ +package custom + +import ( + "pocketbase/custom/cloudflare" + "pocketbase/custom/gtm" + "pocketbase/custom/mail" + "pocketbase/custom/manifest" + "pocketbase/custom/proxy" + "pocketbase/custom/seo" + "pocketbase/custom/supervise" + "pocketbase/custom/version" + webpconverter "pocketbase/custom/webpConverter" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" +) + +func LoadCustomCode(app *pocketbase.PocketBase, se *core.ServeEvent) error { + + // include supervised subprocess if command provided + supervise.ServeSubprocessSupervisor(app, se) + + // include serving js code from cloudflare + cloudflare.ServeTurnstilleCaptchaJS(app, se) + + // include sending emails service + mail.ServeMailSender(app, se) + + // include robots.txt endpoint + seo.ServeRobotsTxt(app, se) + + // include feeds endpoint + seo.ServeFeeds(app, se) + seo.ServeFeedsIndex(app, se) + + // include proxy to serve nuxt app + proxy.ServeProxyPassingToNuxt(app, se) + + // create endpoint to serve version information + version.ServeVersionInfo(app, se) + + // include endpoint to server GTM script + gtm.ServeTagMangerJS(app, se) + + // include endpoint serving manifest + manifest.ServeManifst(app, se) + + return nil +} + +func ExtendApp(app *pocketbase.PocketBase) *pocketbase.PocketBase { + app.RootCmd.PersistentFlags().String("proxy", "", "inner proxy target") + app.RootCmd.PersistentFlags().String("subcommand", "", "provide command with params like cli that will be executed and supervised by main process") + + // include webp converter + app.OnRecordCreate().Bind(webpconverter.CreateEventHandler(app)) + app.OnRecordUpdate().Bind(webpconverter.CreateEventHandler(app)) + app.OnFileDownloadRequest().Bind(webpconverter.ThumbEventHandler(app)) + + return app +} diff --git a/backend/custom/gtm/gtm.go b/backend/custom/gtm/gtm.go new file mode 100644 index 0000000..4dfa642 --- /dev/null +++ b/backend/custom/gtm/gtm.go @@ -0,0 +1,56 @@ +package gtm + +import ( + "bytes" + "encoding/json" + "net/http" + "text/template" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +func ServeTagMangerJS(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.GET("/api/gtm/script.js", func(e *core.RequestEvent) error { + + settings, err := GetSettings(app) + if err != nil { + return err + } + + file, err := JS.ReadFile("gtm.js") + if err != nil { + return err + } + templ, err := template.New("test").Parse(string(file)) + + buf := bytes.Buffer{} + templ.Execute(&buf, map[string]interface{}{ + "GtagID": settings.GtagID, + }) + if err != nil { + return err + } + + e.Response.Header().Set("Content-Type", "application/javascript") + return e.String(http.StatusOK, buf.String()) + }) +} + +type GTagSettings struct { + GtagID string `json:"gtagID"` +} + +func GetSettings(app *pocketbase.PocketBase) (*GTagSettings, error) { + record, err := app.FindFirstRecordByFilter("settings", "key='gtagID'", nil) + + settings := GTagSettings{} + json.Unmarshal([]byte(record.GetString("value")), &settings) + + if err != nil { + return nil, err + } + + return &settings, nil +} diff --git a/backend/custom/gtm/gtm.js b/backend/custom/gtm/gtm.js new file mode 100644 index 0000000..561f9ae --- /dev/null +++ b/backend/custom/gtm/gtm.js @@ -0,0 +1,29 @@ +export class GTM { + gtagID = "{{.GtagID}}"; + + constructor() { + this.insertScript(window, document, 'script', 'dataLayer', this.gtagID); + this.insertNoScript(); + } + + + insertScript(w, d, s, l, i) { + w[l] = w[l] || []; w[l].push({ + 'gtm.start': + new Date().getTime(), event: 'gtm.js' + }); var f = d.getElementsByTagName(s)[0], + j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = + 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); + } + + insertNoScript() { + const noscript = document.createElement("noscript"); + const iframe = document.createElement("iframe"); + iframe.src = "https://www.googletagmanager.com/ns.html?id=" + this.gtagID; + iframe.height = 0; + iframe.width = 0; + iframe.style = "display:none;visibility:hidden"; + noscript.appendChild(iframe); + document.body.appendChild(noscript); + } +} diff --git a/backend/custom/gtm/js.go b/backend/custom/gtm/js.go new file mode 100644 index 0000000..fcf53fa --- /dev/null +++ b/backend/custom/gtm/js.go @@ -0,0 +1,8 @@ +package gtm + +import ( + "embed" +) + +//go:embed gtm.js +var JS embed.FS diff --git a/backend/custom/mail/mail.go b/backend/custom/mail/mail.go new file mode 100644 index 0000000..9592e92 --- /dev/null +++ b/backend/custom/mail/mail.go @@ -0,0 +1,175 @@ +package mail + +import ( + "bytes" + "encoding/json" + "fmt" + "net" + "net/http" + "net/mail" + "pocketbase/custom/cloudflare" + "strings" + "text/template" + "time" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/mailer" + "github.com/pocketbase/pocketbase/tools/router" +) + +type EmailData struct { + Name string `json:"name"` + Email string `json:"email"` + Token string `json:"token"` + Message string `json:"message"` + Phone string `json:"phone"` + LangIso string `json:"lang_iso"` +} + +type MailsSettings struct { + ReceiverMail string `json:"receiver_mail"` + ReceiverName string `json:"receiver_name"` + Subject string `json:"subject"` +} + +func ServeMailSender(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.POST("/api/email/send", func(e *core.RequestEvent) error { + // name := e.Request.PathValue("name") + + data := EmailData{} + if err := e.BindBody(&data); err != nil { + e.Response.Header().Set("Content-Type", "application/json") + app.Logger().Error(err.Error(), "type", "mail") + return e.JSON(http.StatusBadRequest, map[string]string{"error": err.Error()}) + } + + if pass, err := validateMX(data.Email); !pass && err != nil { + e.Response.Header().Set("Content-Type", "application/json") + app.Logger().Error("Invalid email address.", "type", "mail", "error", err.Error()) + return e.JSON(http.StatusBadRequest, map[string]string{"error": "Invalid email address."}) + } + + // fmt.Printf("e.Request.Body: %v IP: %s\n", data, e.RealIP()) + + err := cloudflare.VerifyTurnstile(app, data.Token, e.RealIP()) + if err != nil { + e.Response.Header().Set("Content-Type", "application/json") + app.Logger().Error("Captcha verification failed.", "type", "mail", "error", err.Error()) + return e.JSON(http.StatusBadRequest, map[string]string{"error": "Captcha verification failed."}) + } + + eamil_body, err := app.FindFirstRecordByFilter("email_template", fmt.Sprintf("name='contact_form'&&id_lang='%s'", data.LangIso), nil) + if err != nil { + e.Response.Header().Set("Content-Type", "application/json") + app.Logger().Error("Template not available", "type", "mail", "error", err.Error()) + return e.JSON(http.StatusBadRequest, map[string]string{"error": "Template not available"}) + } + templ, err := template.New("test").Parse(eamil_body.GetString("template")) + if err != nil { + app.Logger().Error("Template parsing error.", "type", "mail", "error", err.Error()) + e.Response.Header().Set("Content-Type", "application/json") + return e.JSON(http.StatusBadRequest, map[string]string{"error": "Template parsing error."}) + } + + buf := bytes.Buffer{} + templ.Execute(&buf, map[string]interface{}{ + "Data": time.Now().Local().Format("2006-01-02 15:04:05"), + "Name": data.Name, + "Email": data.Email, + "Message": strings.ReplaceAll(data.Message, "\n", "
"), + "Phone": data.Phone, + }) + + mailsSettings, err := getSettings(app) + if err != nil { + app.Logger().Error("Mails settings corrupted", "type", "mail", "error", err.Error()) + e.Response.Header().Set("Content-Type", "application/json") + return e.JSON(http.StatusBadRequest, map[string]string{"error": "Mails settings corrupted"}) + } + + cc := []mail.Address{{Address: data.Email, Name: data.Name}} + to := []mail.Address{{Address: mailsSettings.ReceiverMail, Name: mailsSettings.ReceiverName}} + + message := &mailer.Message{ + From: mail.Address{ + Address: e.App.Settings().Meta.SenderAddress, + Name: e.App.Settings().Meta.SenderName, + }, + Cc: cc, + To: to, + Subject: mailsSettings.Subject, + HTML: buf.String(), + } + + err = e.App.NewMailClient().Send(message) + if err != nil { + app.Logger().Error("Mails sending error", "type", "mail", "error", err.Error()) + e.Response.Header().Set("Content-Type", "application/json") + return e.JSON(http.StatusBadRequest, map[string]string{"error": "Mails sending error"}) + } + + receivers := formReceiversList(to, cc, []mail.Address{}) + app.Logger().Info("Mail Sent", "type", "mail", "receivers", receivers) + return e.JSON(http.StatusOK, map[string]string{"status": "success", "message": "Email sent successfully. to " + receivers}) + }) +} + +func formReceiversList(to []mail.Address, cc []mail.Address, bcc []mail.Address) string { + + res := "" + + for _, a := range to { + res = fmt.Sprintf("%s %s<%s>", res, a.Name, a.Address) + } + + for _, a := range cc { + res = fmt.Sprintf("%s %s<%s>", res, a.Name, a.Address) + } + + for _, a := range bcc { + res = fmt.Sprintf("%s %s<%s>", res, a.Name, a.Address) + } + return res +} +func getSettings(app *pocketbase.PocketBase) (*MailsSettings, error) { + record, err := app.FindFirstRecordByFilter("settings", "key='contact_page'", nil) + + settings := MailsSettings{} + json.Unmarshal([]byte(record.GetString("value")), &settings) + + if err != nil { + return nil, err + } + + return &settings, nil +} + +func extractDomain(email string) string { + parts := strings.Split(email, "@") + if len(parts) != 2 { + return "" + } + return strings.TrimSpace(parts[1]) +} + +// validateMX checks if the domain has valid MX records or A records as a fallback +func validateMX(email string) (bool, error) { + // Check MX records + + domain := extractDomain(email) + mxRecords, err := net.LookupMX(domain) + if err != nil { + return false, fmt.Errorf("'MX' records for %s not found", domain) + } else if len(mxRecords) > 0 { + // At least one MX record exists + return true, nil + } + + // Fallback: Check for A records (some domains accept mail via A records) + aRecords, err := net.LookupHost(domain) + if err != nil { + return false, fmt.Errorf("'A' record for %s not found", domain) + } + return len(aRecords) > 0, nil +} diff --git a/backend/custom/manifest/manifest.go b/backend/custom/manifest/manifest.go new file mode 100644 index 0000000..60bc24c --- /dev/null +++ b/backend/custom/manifest/manifest.go @@ -0,0 +1,50 @@ +package manifest + +import ( + "net/http" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +type Manifest struct { + Name string `json:"name"` + ShortName string `json:"short_name"` + Description string `json:"description"` + Icons []Icon `json:"icons"` + StartURL string `json:"start_url"` + Display string `json:"display"` + BackgroundColor string `json:"background_color"` + ThemeColor string `json:"theme_color"` + Lang string `json:"lang"` + Author string `json:"author"` + OgHost string `json:"ogHost"` + Orientation string `json:"orientation"` +} + +type Icon struct { + Src string `json:"src"` + Sizes string `json:"sizes"` + Type string `json:"type"` +} + +func ServeManifst(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.GET("/api/manifest.json", func(e *core.RequestEvent) error { + manifest, err := GetSettings(app) + if err != nil { + return err + } + e.Response.Header().Add("content-type", "application/json") + return e.String(http.StatusOK, manifest) + }) +} + +func GetSettings(app *pocketbase.PocketBase) (string, error) { + record, err := app.FindFirstRecordByFilter("settings", "key='manifest'", nil) + if err != nil { + return "", err + } + + return record.GetString("value"), nil +} diff --git a/backend/custom/proxy/proxy.go b/backend/custom/proxy/proxy.go new file mode 100644 index 0000000..e47a16d --- /dev/null +++ b/backend/custom/proxy/proxy.go @@ -0,0 +1,121 @@ +package proxy + +import ( + "context" + "errors" + "fmt" + "log/slog" + "net" + "net/http" + "net/http/httputil" + "net/url" + "time" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +var Logger *slog.Logger + +func ServeProxyPassingToNuxt(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + Logger = app.Logger() + + proxyUrl, _ := app.RootCmd.Flags().GetString("proxy") + + if len(proxyUrl) > 0 { + target, _ := url.Parse(proxyUrl) // Node.js app + + proxy := httputil.NewSingleHostReverseProxy(target) + + originalDirector := proxy.Director + proxy.Director = func(req *http.Request) { + originalDirector(req) + req.Host = target.Host + } + proxy.Transport = &loggingTransport{http.DefaultTransport} + + proxy.ErrorHandler = func(rw http.ResponseWriter, req *http.Request, err error) { + if errors.Is(err, context.Canceled) { + return + } + app.Logger().Error(fmt.Sprintf("Proxy error: %v for %s %s", err, req.Method, req.URL.Path), "type", "proxy") + http.Error(rw, "Proxy error", http.StatusBadGateway) + } + + return se.Router.Any("/", func(e *core.RequestEvent) error { + // Ping the backend with a HEAD request (or TCP dial) + backendUp := isBackendAlive(target) + if !backendUp { + app.Logger().Error(fmt.Sprintf("Backend %s is unreachable, sending 502", target), "type", "proxy", "path", e.Request.URL.Path, "remoteIP", e.Request.RemoteAddr) + e.Response.WriteHeader(http.StatusBadGateway) + e.Response.Write([]byte("502 Backend is unavailable")) + return nil + } + + // Forward to Node.js + proxy.ServeHTTP(e.Response, e.Request) + return nil + }) + } else { + return nil + } +} + +func isBackendAlive(target *url.URL) bool { + conn, err := net.DialTimeout("tcp", target.Host, 500*time.Millisecond) + if err != nil { + return false + } + conn.Close() + return true +} + +type loggingTransport struct { + rt http.RoundTripper +} + +func (t *loggingTransport) RoundTrip(req *http.Request) (*http.Response, error) { + start := time.Now() + + // Do the actual request + resp, err := t.rt.RoundTrip(req) + duration := time.Since(start) + + // Prepare fields + remoteAddr := req.RemoteAddr + if ip := req.Header.Get("X-Real-IP"); len(ip) > 0 { + remoteAddr = ip + } + method := req.Method + uri := req.URL.RequestURI() + // proto := req.Proto + status := 0 + size := 0 + + if resp != nil { + status = resp.StatusCode + if resp.ContentLength > 0 { + size = int(resp.ContentLength) + } + } + + referer := req.Referer() + ua := req.UserAgent() + // timestamp := time.Now().Format("02/Jan/2006:15:04:05 -0700") + + Logger.Info( + fmt.Sprintf("%s %s", method, uri), + "type", "proxy", + // "method", method, + // "url", uri, + "referer", referer, + "remoteIP", remoteAddr, + "userAgent", ua, + "execTime", fmt.Sprintf("%.4fms", float64(duration.Milliseconds())), + "status", status, + "size", size, + ) + + return resp, err +} diff --git a/backend/custom/seo/feeds.go b/backend/custom/seo/feeds.go new file mode 100644 index 0000000..cce7998 --- /dev/null +++ b/backend/custom/seo/feeds.go @@ -0,0 +1,194 @@ +package seo + +import ( + "encoding/json" + "encoding/xml" + "fmt" + "net/http" + "path" + "time" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +type MenuRecord struct { + Active bool `json:"active"` + CollectionID string `json:"collectionId"` + CollectionName string `json:"collectionName"` + Created string `json:"created"` + ID string `json:"id"` + IDLang string `json:"id_lang"` + IDPage string `json:"id_page"` + IDParent string `json:"id_parent"` + IsDefault bool `json:"is_default"` + IsRoot bool `json:"is_root"` + LinkRewrite string `json:"link_rewrite"` + LinkTitle string `json:"link_title"` + MetaDescription string `json:"meta_description"` + MetaTitle string `json:"meta_title"` + Name string `json:"name"` + PageName string `json:"page_name"` + PositionID int `json:"position_id"` + Updated string `json:"updated"` + Url string `json:"url"` +} + +type UrlSet struct { + XMLName xml.Name `xml:"urlset"` + Xmlns string `xml:"xmlns,attr"` + Urls []Url `xml:"url"` +} + +type Url struct { + Loc string `xml:"loc"` + LastMod string `xml:"lastmod,omitempty"` + ChangeFreq string `xml:"changefreq,omitempty"` + Priority string `xml:"priority,omitempty"` +} + +func ServeFeeds(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.GET("/feeds/{lang}/sitemap.xml", func(e *core.RequestEvent) error { + + lang := e.Request.PathValue("lang") + + urls, err := getLocations(app, lang) + if err != nil { + return err + } + + xx := UrlSet{ + Xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9", + Urls: urls, + } + + bytes, err := xml.MarshalIndent(xx, "", " ") + if err != nil { + return err + } + + e.Response.Header().Add("content-type", "text/xml") + return e.String(http.StatusOK, xml.Header+string(bytes)) + }) +} + +func getLocations(app *pocketbase.PocketBase, lang string) ([]Url, error) { + records, err := app.FindRecordsByFilter("menu_view", fmt.Sprintf("id_lang='%s'&&active=true", lang), "position_id", 200, 0) + if err != nil { + return nil, err + } + + baseUrl, err := getBaseUrl(app) + if err != nil { + return nil, err + } + + locations := []Url{} + lastMod := time.Now().Add(time.Hour * 24 * 7 * -1).Format("2006-01-02") + + for _, r := range records { + rec := MenuRecord{} + x, _ := r.MarshalJSON() + json.Unmarshal(x, &rec) + if rec.IsRoot { + continue + } + if len(rec.Url) > 0 { + continue + } + if rec.IsDefault { + + locations = append(locations, Url{ + Loc: baseUrl + path.Join(lang), + LastMod: lastMod, + ChangeFreq: "weekly", + Priority: "1.0", + }) + } + locations = append(locations, Url{ + Loc: baseUrl + path.Join(lang, rec.IDPage, rec.LinkRewrite), + LastMod: lastMod, + ChangeFreq: "weekly", + Priority: "1.0", + }) + } + + return locations, nil +} + +type BaseUrl struct { + BaseURL string `json:"baseUrl"` +} + +func getBaseUrl(app *pocketbase.PocketBase) (string, error) { + record, err := app.FindFirstRecordByFilter("settings", "key='baseUrl'", nil) + if err != nil { + return "", err + } + + settings := BaseUrl{} + json.Unmarshal([]byte(record.GetString("value")), &settings) + + if err != nil { + return "", err + } + + return settings.BaseURL, nil +} + +type SitemapIndex struct { + XMLName xml.Name `xml:"sitemapindex"` + Xmlns string `xml:"xmlns,attr"` + Sitemaps []Sitemap `xml:"sitemap"` +} + +// Sitemap represents each entry +type Sitemap struct { + Loc string `xml:"loc"` + LastMod string `xml:"lastmod"` +} + +func ServeFeedsIndex(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.GET("/feeds/index.xml", func(e *core.RequestEvent) error { + index, err := makeSiteMapIndex(app) + if err != nil { + return err + } + + bytes, err := xml.MarshalIndent(index, "", " ") + if err != nil { + return err + } + + e.Response.Header().Add("content-type", "text/xml") + return e.String(http.StatusOK, xml.Header+string(bytes)) + }) +} + +func makeSiteMapIndex(app *pocketbase.PocketBase) (*SitemapIndex, error) { + index := &SitemapIndex{ + Xmlns: "http://www.sitemaps.org/schemas/sitemap/0.9", + } + + bseUrl, err := getBaseUrl(app) + if err != nil { + return nil, err + } + + langs, err := app.FindRecordsByFilter("lang", "active=true", "", 200, 0) + if err != nil { + return index, err + } + + lastMod := time.Now().Add(time.Hour * 24 * 7 * -1).Format("2006-01-02") + + for _, l := range langs { + index.Sitemaps = append(index.Sitemaps, Sitemap{ + Loc: bseUrl + path.Join("feeds/", l.Id, "sitemap.xml"), + LastMod: lastMod, + }) + } + + return index, nil +} diff --git a/backend/custom/seo/robots.go b/backend/custom/seo/robots.go new file mode 100644 index 0000000..1db5c49 --- /dev/null +++ b/backend/custom/seo/robots.go @@ -0,0 +1,50 @@ +package seo + +import ( + "encoding/json" + "fmt" + "net/http" + "strings" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +type Robots struct { + Robots []string +} + +func ServeRobotsTxt(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.GET("/robots.txt", func(e *core.RequestEvent) error { + + text, err := getRobots(app) + if err != nil { + return err + } + return e.String(http.StatusOK, text) + }) +} + +func getRobots(app *pocketbase.PocketBase) (string, error) { + record, err := app.FindFirstRecordByFilter("settings", "key='robots_txt'", nil) + if err != nil { + return "", err + } + + settings := Robots{} + json.Unmarshal([]byte(record.GetString("value")), &settings) + + if err != nil { + return "", err + } + + baseUrl, err := getBaseUrl(app) + if err != nil { + return "", err + } + + settings.Robots = append(settings.Robots, fmt.Sprintf("\n\nSitemap: %s%s", baseUrl, "feeds/index.xml")) + + return strings.Join(settings.Robots, "\n"), nil +} diff --git a/backend/custom/supervise/supervise.go b/backend/custom/supervise/supervise.go new file mode 100644 index 0000000..3a6ad7d --- /dev/null +++ b/backend/custom/supervise/supervise.go @@ -0,0 +1,88 @@ +package supervise + +import ( + "context" + "log" + "os" + "os/exec" + "os/signal" + "strings" + "sync" + "syscall" + "time" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +func ServeSubprocessSupervisor(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + + command, _ := app.RootCmd.PersistentFlags().GetString("subcommand") + + if len(command) > 0 { + cmdsub := strings.Split(command, " ") + if len(cmdsub) > 0 { + startNodeProcessSupervised(cmdsub[0], strings.Join(cmdsub[1:], " ")) + } + } + return nil +} + +func startNodeProcessSupervised(command string, args ...string) { + const maxRetries = 3 + const retryDelay = 30 * time.Second + + var ( + cmdMu sync.Mutex + cmd *exec.Cmd + ) + + stopChan := make(chan os.Signal, 1) + signal.Notify(stopChan, os.Interrupt, syscall.SIGTERM) + + go func() { + retries := 0 + + for { + select { + case <-stopChan: + log.Println("Received shutdown signal. Terminating subprocess...") + cmdMu.Lock() + if cmd != nil && cmd.Process != nil { + _ = cmd.Process.Signal(syscall.SIGTERM) + } + cmdMu.Unlock() + return + + default: + ctx, cancel := context.WithCancel(context.Background()) + cmdMu.Lock() + cmd = exec.CommandContext(ctx, command, args...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + cmdMu.Unlock() + + log.Printf("Starting Process: %s %v\n", command, args) + err := cmd.Run() + cancel() // cancel the context when done + + if err != nil { + log.Printf("Process exited with error: %v\n", err) + retries++ + if retries >= maxRetries { + log.Printf("Process failed %d times. Shutting down application...", retries) + // _ = app.ResetBootstrapState() + os.Exit(1) + } + log.Printf("Retrying in %s (%d/%d)...", retryDelay, retries, maxRetries) + time.Sleep(retryDelay) + } else { + log.Printf("Process exited normally. Resetting retry count.") + retries = 0 + } + } + } + }() + +} diff --git a/backend/custom/version/version.go b/backend/custom/version/version.go new file mode 100644 index 0000000..d976c11 --- /dev/null +++ b/backend/custom/version/version.go @@ -0,0 +1,26 @@ +package version + +import ( + "net/http" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/router" +) + +var Version string +var BuildDate string +var Company string +var CompanyUrl string + +func ServeVersionInfo(app *pocketbase.PocketBase, se *core.ServeEvent) *router.Route[*core.RequestEvent] { + return se.Router.GET("/api/version/send", func(e *core.RequestEvent) error { + + return e.JSON(http.StatusOK, map[string]string{ + "version": Version, + "build_date": BuildDate, + "company": Company, + "company_url": CompanyUrl, + }) + }) +} diff --git a/backend/custom/webpConverter/memFileReader.go b/backend/custom/webpConverter/memFileReader.go new file mode 100644 index 0000000..a3d0b5a --- /dev/null +++ b/backend/custom/webpConverter/memFileReader.go @@ -0,0 +1,14 @@ +package webpconverter + +import ( + "bytes" + "io" +) + +type memFileReader struct { + data []byte +} + +func (m *memFileReader) Open() (io.ReadSeekCloser, error) { + return readSeekCloser{bytes.NewReader(m.data)}, nil +} diff --git a/backend/custom/webpConverter/readSeekCloser.go b/backend/custom/webpConverter/readSeekCloser.go new file mode 100644 index 0000000..54444e1 --- /dev/null +++ b/backend/custom/webpConverter/readSeekCloser.go @@ -0,0 +1,9 @@ +package webpconverter + +import "bytes" + +type readSeekCloser struct { + *bytes.Reader +} + +func (r readSeekCloser) Close() error { return nil } diff --git a/backend/custom/webpConverter/webp_convert.go b/backend/custom/webpConverter/webp_convert.go new file mode 100644 index 0000000..d57381c --- /dev/null +++ b/backend/custom/webpConverter/webp_convert.go @@ -0,0 +1,144 @@ +package webpconverter + +import ( + "bytes" + "image" + "image/png" + "io" + "path/filepath" + "strings" + + "github.com/chai2010/webp" + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" + "github.com/pocketbase/pocketbase/tools/filesystem" + "github.com/pocketbase/pocketbase/tools/hook" +) + +func CreateEventHandler(app *pocketbase.PocketBase) *hook.Handler[*core.RecordEvent] { + return &hook.Handler[*core.RecordEvent]{ + Func: func(e *core.RecordEvent) error { + fieldsData := e.Record.FieldsData() + for _, v := range fieldsData { + if files, ok := v.([]interface{}); ok { + for _, f := range files { + if file, ok := f.(*filesystem.File); ok { + if shouldBeReplacedWithWebp(file.Name) { + convertToWebp(file) + } + } + } + } + if f, ok := v.(interface{}); ok { + if file, ok := f.(*filesystem.File); ok { + if shouldBeReplacedWithWebp(file.Name) { + convertToWebp(file) + } + } + } + } + return e.Next() + }, + Priority: 100, + } +} + +func ThumbEventHandler(app *pocketbase.PocketBase) *hook.Handler[*core.FileDownloadRequestEvent] { + return &hook.Handler[*core.FileDownloadRequestEvent]{ + Func: func(fdre *core.FileDownloadRequestEvent) error { + if filepath.Ext(fdre.ServedName) == ".webp" { + + filename := fdre.Request.PathValue("filename") + baseFilesPath := fdre.Record.BaseFilesPath() + + fs, err := app.App.NewFilesystem() + if err != nil { + return err + } + defer fs.Close() + + blob, err := fs.GetReader(baseFilesPath + "/thumbs_" + filename + "/" + fdre.ServedName) + if err != nil { + blob, err = fs.GetReader(baseFilesPath + "/" + fdre.ServedName) + if err != nil { + return err + } + } + defer blob.Close() + + img, err := png.Decode(blob) + if err != nil { + return fdre.Next() + } + + buf := bytes.Buffer{} + err = webp.Encode(&buf, img, &webp.Options{Quality: 80}) + if err != nil { + return err + } + err = fs.Upload(buf.Bytes(), baseFilesPath+"/thumbs_"+filename+"/"+fdre.ServedName) + if err != nil { + _, err := fdre.Response.Write(buf.Bytes()) + if err != nil { + return err + } + return nil + } + return fdre.Next() + } + return fdre.Next() + }, + Priority: 99, + } +} + +func convertToWebp(file *filesystem.File) error { + file.Name = replaceExtWithWebp(file.Name) + file.OriginalName = replaceExtWithWebp(file.OriginalName) + ff, err := file.Reader.Open() + if err != nil { + return err + } + defer ff.Close() + fff, err := io.ReadAll(ff) + if err != nil { + return err + } + img, _, err := image.Decode(bytes.NewReader(fff)) + if err != nil { + return err + } + + buf := bytes.Buffer{} + err = webp.Encode(&buf, img, &webp.Options{Quality: 80}) + if err != nil { + return err + } + file.Reader = &memFileReader{data: buf.Bytes()} + file.Size = int64(buf.Len()) + return nil +} + +func replaceExtWithWebp(path string) string { + // List of image extensions to convert + exts := []string{".png", ".jpg", ".jpeg", ".bmp", ".tiff"} + + for _, ext := range exts { + if strings.HasSuffix(strings.ToLower(path), ext) { + return strings.TrimSuffix(path, ext) + ".webp" + } + } + return path +} + +func shouldBeReplacedWithWebp(path string) bool { + // List of image extensions to convert + exts := []string{".png", ".jpg", ".jpeg", ".bmp", ".tiff"} + + for _, ext := range exts { + if strings.HasSuffix(strings.ToLower(path), ext) { + return true + } + } + return false +} diff --git a/backend/go.mod b/backend/go.mod new file mode 100644 index 0000000..2403ea2 --- /dev/null +++ b/backend/go.mod @@ -0,0 +1,42 @@ +module pocketbase + +go 1.24.0 + +require ( + github.com/chai2010/webp v1.4.0 + github.com/pocketbase/pocketbase v0.28.2 +) + +require ( + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/disintegration/imaging v1.6.2 // indirect + github.com/domodwyer/mailyak/v3 v3.6.2 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.9 // indirect + github.com/ganigeorgiev/fexpr v0.5.0 // indirect + github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect + github.com/golang-jwt/jwt/v5 v5.2.2 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/ncruces/go-strftime v0.1.9 // indirect + github.com/pocketbase/dbx v1.11.0 // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/spf13/cast v1.8.0 // indirect + github.com/spf13/cobra v1.9.1 // indirect + github.com/spf13/pflag v1.0.6 // indirect + golang.org/x/crypto v0.38.0 // indirect + golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect + golang.org/x/image v0.27.0 // indirect + golang.org/x/net v0.40.0 // indirect + golang.org/x/oauth2 v0.30.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/sys v0.33.0 // indirect + golang.org/x/text v0.25.0 // indirect + modernc.org/libc v1.65.7 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.11.0 // indirect + modernc.org/sqlite v1.37.1 // indirect +) diff --git a/backend/go.sum b/backend/go.sum new file mode 100644 index 0000000..5c2bd85 --- /dev/null +++ b/backend/go.sum @@ -0,0 +1,127 @@ +github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/chai2010/webp v1.4.0 h1:6DA2pkkRUPnbOHvvsmGI3He1hBKf/bkRlniAiSGuEko= +github.com/chai2010/webp v1.4.0/go.mod h1:0XVwvZWdjjdxpUEIf7b9g9VkHFnInUSYujwqTLEuldU= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c= +github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4= +github.com/domodwyer/mailyak/v3 v3.6.2 h1:x3tGMsyFhTCaxp6ycgR0FE/bu5QiNp+hetUuCOBXMn8= +github.com/domodwyer/mailyak/v3 v3.6.2/go.mod h1:lOm/u9CyCVWHeaAmHIdF4RiKVxKUT/H5XX10lIKAL6c= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/gabriel-vasile/mimetype v1.4.9 h1:5k+WDwEsD9eTLL8Tz3L0VnmVh9QxGjRmjBvAG7U/oYY= +github.com/gabriel-vasile/mimetype v1.4.9/go.mod h1:WnSQhFKJuBlRyLiKohA/2DtIlPFAbguNaG7QCHcyGok= +github.com/ganigeorgiev/fexpr v0.5.0 h1:XA9JxtTE/Xm+g/JFI6RfZEHSiQlk+1glLvRK1Lpv/Tk= +github.com/ganigeorgiev/fexpr v0.5.0/go.mod h1:RyGiGqmeXhEQ6+mlGdnUleLHgtzzu/VGO2WtJkF5drE= +github.com/go-ozzo/ozzo-validation/v4 v4.3.0 h1:byhDUpfEwjsVQb1vBunvIjh2BHQ9ead57VkAEY4V+Es= +github.com/go-ozzo/ozzo-validation/v4 v4.3.0/go.mod h1:2NKgrcHl3z6cJs+3Oo940FPRiTzuqKbvfrL2RxCj6Ew= +github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= +github.com/golang-jwt/jwt/v5 v5.2.2/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= +github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pocketbase/dbx v1.11.0 h1:LpZezioMfT3K4tLrqA55wWFw1EtH1pM4tzSVa7kgszU= +github.com/pocketbase/dbx v1.11.0/go.mod h1:xXRCIAKTHMgUCyCKZm55pUOdvFziJjQfXaWKhu2vhMs= +github.com/pocketbase/pocketbase v0.28.2 h1:b6cfUfr5d4whvUFGFhI8oHRzx/eB76GCUQGftqgv9lM= +github.com/pocketbase/pocketbase v0.28.2/go.mod h1:ElwIYS1b5xS9w0U7AK7tsm6FuC0lzw57H8p/118Cu7g= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/spf13/cast v1.8.0 h1:gEN9K4b8Xws4EX0+a0reLmhq8moKn7ntRlQYgjPeCDk= +github.com/spf13/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= +github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= +github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= +github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI= +golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ= +golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/image v0.27.0 h1:C8gA4oWU/tKkdCfYT6T2u4faJu3MeNS5O8UPWlPF61w= +golang.org/x/image v0.27.0/go.mod h1:xbdrClrAUway1MUTEZDq9mz/UpRwYAkFFNUslZtcB+g= +golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU= +golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.33.0 h1:4qz2S3zmRxbGIhDIAgjxvFutSvH5EfnsYrRBj0UI0bc= +golang.org/x/tools v0.33.0/go.mod h1:CIJMaWEY88juyUfo7UbgPqbC8rU2OqfAV1h2Qp0oMYI= +google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +modernc.org/cc/v4 v4.26.1 h1:+X5NtzVBn0KgsBCBe+xkDC7twLb/jNVj9FPgiwSQO3s= +modernc.org/cc/v4 v4.26.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= +modernc.org/ccgo/v4 v4.28.0 h1:rjznn6WWehKq7dG4JtLRKxb52Ecv8OUGah8+Z/SfpNU= +modernc.org/ccgo/v4 v4.28.0/go.mod h1:JygV3+9AV6SmPhDasu4JgquwU81XAKLd3OKTUDNOiKE= +modernc.org/fileutil v1.3.1 h1:8vq5fe7jdtEvoCf3Zf9Nm0Q05sH6kGx0Op2CPx1wTC8= +modernc.org/fileutil v1.3.1/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/libc v1.65.7 h1:Ia9Z4yzZtWNtUIuiPuQ7Qf7kxYrxP1/jeHZzG8bFu00= +modernc.org/libc v1.65.7/go.mod h1:011EQibzzio/VX3ygj1qGFt5kMjP0lHb0qCW5/D/pQU= +modernc.org/libc v1.65.8 h1:7PXRJai0TXZ8uNA3srsmYzmTyrLoHImV5QxHeni108Q= +modernc.org/libc v1.65.8/go.mod h1:011EQibzzio/VX3ygj1qGFt5kMjP0lHb0qCW5/D/pQU= +modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= +modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= +modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= +modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= +modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= +modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= +modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= +modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= +modernc.org/sqlite v1.37.1 h1:EgHJK/FPoqC+q2YBXg7fUmES37pCHFc97sI7zSayBEs= +modernc.org/sqlite v1.37.1/go.mod h1:XwdRtsE1MpiBcL54+MbKcaDvcuej+IYSMfLN6gSKV8g= +modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= +modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= diff --git a/backend/main.go b/backend/main.go new file mode 100644 index 0000000..5868f2f --- /dev/null +++ b/backend/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "log" + + "pocketbase/custom" + + "github.com/pocketbase/pocketbase" + "github.com/pocketbase/pocketbase/core" +) + +func main() { + app := pocketbase.New() + + app = custom.ExtendApp(app) + + app.OnServe().BindFunc(func(se *core.ServeEvent) error { + + custom.LoadCustomCode(app, se) + + return se.Next() + }) + + if err := app.Start(); err != nil { + log.Fatal(err) + } +} diff --git a/backend/pb_data/auxiliary.db b/backend/pb_data/auxiliary.db new file mode 100644 index 0000000..48e1285 Binary files /dev/null and b/backend/pb_data/auxiliary.db differ diff --git a/backend/pb_data/auxiliary.db-shm b/backend/pb_data/auxiliary.db-shm new file mode 100644 index 0000000..09be23a Binary files /dev/null and b/backend/pb_data/auxiliary.db-shm differ diff --git a/backend/pb_data/auxiliary.db-wal b/backend/pb_data/auxiliary.db-wal new file mode 100644 index 0000000..413afc5 Binary files /dev/null and b/backend/pb_data/auxiliary.db-wal differ diff --git a/backend/pb_data/backups/pb_backup_acme_20250523140124.zip b/backend/pb_data/backups/pb_backup_acme_20250523140124.zip new file mode 100644 index 0000000..1bca683 Binary files /dev/null and b/backend/pb_data/backups/pb_backup_acme_20250523140124.zip differ diff --git a/backend/pb_data/backups/pb_backup_acme_20250523140124.zip.attrs b/backend/pb_data/backups/pb_backup_acme_20250523140124.zip.attrs new file mode 100644 index 0000000..0940dbd --- /dev/null +++ b/backend/pb_data/backups/pb_backup_acme_20250523140124.zip.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"application/zip","user.metadata":{"original-filename":"pb_backup_acme_20250523140124.zip"},"md5":"dbtXP4WTg7TAA/DZiykQNg=="} diff --git a/backend/pb_data/data.db b/backend/pb_data/data.db new file mode 100644 index 0000000..1766bd9 Binary files /dev/null and b/backend/pb_data/data.db differ diff --git a/backend/pb_data/data.db-shm b/backend/pb_data/data.db-shm new file mode 100644 index 0000000..3db1a8c Binary files /dev/null and b/backend/pb_data/data.db-shm differ diff --git a/backend/pb_data/data.db-wal b/backend/pb_data/data.db-wal new file mode 100644 index 0000000..9df40e2 Binary files /dev/null and b/backend/pb_data/data.db-wal differ diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_c8b5faurot.webp b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_c8b5faurot.webp new file mode 100644 index 0000000..cf99540 Binary files /dev/null and b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_c8b5faurot.webp differ diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_c8b5faurot.webp.attrs b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_c8b5faurot.webp.attrs new file mode 100644 index 0000000..8da8fd1 --- /dev/null +++ b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_c8b5faurot.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"Rectangle 87.webp"},"md5":"oxzc3n8PP4216yMwSMwvnw=="} diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_m14gt8z96m.webp b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_m14gt8z96m.webp new file mode 100644 index 0000000..cf99540 Binary files /dev/null and b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_m14gt8z96m.webp differ diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_m14gt8z96m.webp.attrs b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_m14gt8z96m.webp.attrs new file mode 100644 index 0000000..8da8fd1 --- /dev/null +++ b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/rectangle_87_m14gt8z96m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"Rectangle 87.webp"},"md5":"oxzc3n8PP4216yMwSMwvnw=="} diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_c8b5faurot.webp/100x100_rectangle_87_c8b5faurot.webp b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_c8b5faurot.webp/100x100_rectangle_87_c8b5faurot.webp new file mode 100644 index 0000000..1b66c25 Binary files /dev/null and b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_c8b5faurot.webp/100x100_rectangle_87_c8b5faurot.webp differ diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_c8b5faurot.webp/100x100_rectangle_87_c8b5faurot.webp.attrs b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_c8b5faurot.webp/100x100_rectangle_87_c8b5faurot.webp.attrs new file mode 100644 index 0000000..bb70a48 --- /dev/null +++ b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_c8b5faurot.webp/100x100_rectangle_87_c8b5faurot.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"ptezH5dtiD2YbO/0Tw6HoA=="} diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_m14gt8z96m.webp/100x100_rectangle_87_m14gt8z96m.webp b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_m14gt8z96m.webp/100x100_rectangle_87_m14gt8z96m.webp new file mode 100644 index 0000000..1b66c25 Binary files /dev/null and b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_m14gt8z96m.webp/100x100_rectangle_87_m14gt8z96m.webp differ diff --git a/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_m14gt8z96m.webp/100x100_rectangle_87_m14gt8z96m.webp.attrs b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_m14gt8z96m.webp/100x100_rectangle_87_m14gt8z96m.webp.attrs new file mode 100644 index 0000000..bb70a48 --- /dev/null +++ b/backend/pb_data/storage/pbc_1029378994/k82ugbdh09080vn/thumbs_rectangle_87_m14gt8z96m.webp/100x100_rectangle_87_m14gt8z96m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"ptezH5dtiD2YbO/0Tw6HoA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp new file mode 100644 index 0000000..831b171 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs new file mode 100644 index 0000000..5814875 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"CON_06_03_00_00 Zespol kontnerow 6m i 3m 1.JPG.webp"},"md5":"o4O+AP6RKyBPkjP+oHFdCg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/100x100_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/100x100_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp new file mode 100644 index 0000000..7d5fd1a Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/100x100_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/100x100_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/100x100_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs new file mode 100644 index 0000000..7fa006e --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/100x100_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"gkIwoHGOSQpOXXB8eADzjw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/1200x0_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/1200x0_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp new file mode 100644 index 0000000..9bca7ae Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/1200x0_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/1200x0_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/1200x0_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs new file mode 100644 index 0000000..858b2a5 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp/1200x0_con_06_03_00_00_zespol_kontnerow_6m_i_3m_1_v6cxvhzp8q.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"99eI8uDdYbm2V6RBEXBmdQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/100x100_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/100x100_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp new file mode 100644 index 0000000..6385e10 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/100x100_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/100x100_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/100x100_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs new file mode 100644 index 0000000..f7712c8 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/100x100_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"i8JotqJVLiFT7ksYWWx+3w=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1200x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1200x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp new file mode 100644 index 0000000..8034b77 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1200x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1200x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1200x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs new file mode 100644 index 0000000..d204631 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1200x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"VeDfPHH9l+0azSaETSUOrg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1920x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1920x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp new file mode 100644 index 0000000..dc0db9f Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1920x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1920x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1920x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs new file mode 100644 index 0000000..110dc6d --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/1920x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"IejPE5jTnKJYAVV9aKOWxA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/600x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/600x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp new file mode 100644 index 0000000..0e13581 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/600x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/600x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/600x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs new file mode 100644 index 0000000..3981d84 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/thumbs_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp/600x0_zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"vBgQbwbWepxwI+0eaJ4WJg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp new file mode 100644 index 0000000..b4b28b2 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs new file mode 100644 index 0000000..b70367d --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/0e16c877uc96him/zlozenie_dwoch_kontnerow_6_plus_3_1_sdqn7ewbuj.JPG.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"Zlozenie dwoch kontnerow 6 plus 3 1.JPG.webp"},"md5":"pl77oY+XT+cxx8mhsEb8aA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/bike_creation_workshop_vyrctlm47m.webp b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/bike_creation_workshop_vyrctlm47m.webp new file mode 100644 index 0000000..8c9cdf6 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/bike_creation_workshop_vyrctlm47m.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/bike_creation_workshop_vyrctlm47m.webp.attrs b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/bike_creation_workshop_vyrctlm47m.webp.attrs new file mode 100644 index 0000000..f56e7c8 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/bike_creation_workshop_vyrctlm47m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"bike-creation-workshop.webp"},"md5":"Eqd3581S1wZ3Hg4zX5MbnA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/100x100_bike_creation_workshop_vyrctlm47m.webp b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/100x100_bike_creation_workshop_vyrctlm47m.webp new file mode 100644 index 0000000..ec200b1 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/100x100_bike_creation_workshop_vyrctlm47m.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/100x100_bike_creation_workshop_vyrctlm47m.webp.attrs b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/100x100_bike_creation_workshop_vyrctlm47m.webp.attrs new file mode 100644 index 0000000..5503d04 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/100x100_bike_creation_workshop_vyrctlm47m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"1FwGEt0KlNu+wGlrCs6pWQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1200x0_bike_creation_workshop_vyrctlm47m.webp b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1200x0_bike_creation_workshop_vyrctlm47m.webp new file mode 100644 index 0000000..b8b4b08 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1200x0_bike_creation_workshop_vyrctlm47m.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1200x0_bike_creation_workshop_vyrctlm47m.webp.attrs b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1200x0_bike_creation_workshop_vyrctlm47m.webp.attrs new file mode 100644 index 0000000..7267c6b --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1200x0_bike_creation_workshop_vyrctlm47m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"GPr8lSC2IOlpmlZMuog+vg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1920x0_bike_creation_workshop_vyrctlm47m.webp b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1920x0_bike_creation_workshop_vyrctlm47m.webp new file mode 100644 index 0000000..ca45c7e Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1920x0_bike_creation_workshop_vyrctlm47m.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1920x0_bike_creation_workshop_vyrctlm47m.webp.attrs b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1920x0_bike_creation_workshop_vyrctlm47m.webp.attrs new file mode 100644 index 0000000..d28bb22 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/1920x0_bike_creation_workshop_vyrctlm47m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"u+wWpSyRYccIP8KafzAFhg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/400x0_bike_creation_workshop_vyrctlm47m.webp b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/400x0_bike_creation_workshop_vyrctlm47m.webp new file mode 100644 index 0000000..4fbf080 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/400x0_bike_creation_workshop_vyrctlm47m.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/400x0_bike_creation_workshop_vyrctlm47m.webp.attrs b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/400x0_bike_creation_workshop_vyrctlm47m.webp.attrs new file mode 100644 index 0000000..76c627a --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/400x0_bike_creation_workshop_vyrctlm47m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"EqeJrhC0/zOFQP2msVamSQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/600x0_bike_creation_workshop_vyrctlm47m.webp b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/600x0_bike_creation_workshop_vyrctlm47m.webp new file mode 100644 index 0000000..c4d2700 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/600x0_bike_creation_workshop_vyrctlm47m.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/600x0_bike_creation_workshop_vyrctlm47m.webp.attrs b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/600x0_bike_creation_workshop_vyrctlm47m.webp.attrs new file mode 100644 index 0000000..200c371 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/59jmnzfrmr40d7d/thumbs_bike_creation_workshop_vyrctlm47m.webp/600x0_bike_creation_workshop_vyrctlm47m.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"Vyiopx1+jhzdpCXp5w7uCg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/frame_272_3y0sjqciuy.webp b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/frame_272_3y0sjqciuy.webp new file mode 100644 index 0000000..e3d37f9 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/frame_272_3y0sjqciuy.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/frame_272_3y0sjqciuy.webp.attrs b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/frame_272_3y0sjqciuy.webp.attrs new file mode 100644 index 0000000..587c165 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/frame_272_3y0sjqciuy.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"Frame 272.webp"},"md5":"XAsOiE/X7ZEwulPOYF9NlQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/100x100_frame_272_3y0sjqciuy.webp b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/100x100_frame_272_3y0sjqciuy.webp new file mode 100644 index 0000000..a856e48 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/100x100_frame_272_3y0sjqciuy.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/100x100_frame_272_3y0sjqciuy.webp.attrs b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/100x100_frame_272_3y0sjqciuy.webp.attrs new file mode 100644 index 0000000..348b59d --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/100x100_frame_272_3y0sjqciuy.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"fAtnETPk9L0Obgun3e4kcg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/1920x0_frame_272_3y0sjqciuy.webp b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/1920x0_frame_272_3y0sjqciuy.webp new file mode 100644 index 0000000..9f55b69 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/1920x0_frame_272_3y0sjqciuy.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/1920x0_frame_272_3y0sjqciuy.webp.attrs b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/1920x0_frame_272_3y0sjqciuy.webp.attrs new file mode 100644 index 0000000..3e2358a --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/1920x0_frame_272_3y0sjqciuy.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"GkVxfnlXP6ZX23UCqCl4xQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/400x0_frame_272_3y0sjqciuy.webp b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/400x0_frame_272_3y0sjqciuy.webp new file mode 100644 index 0000000..52690f9 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/400x0_frame_272_3y0sjqciuy.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/400x0_frame_272_3y0sjqciuy.webp.attrs b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/400x0_frame_272_3y0sjqciuy.webp.attrs new file mode 100644 index 0000000..9e47445 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/79o1113bx3gp0pb/thumbs_frame_272_3y0sjqciuy.webp/400x0_frame_272_3y0sjqciuy.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"BaLB5W1PMEp/uHS/BrHS5w=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/1ikid1p7obc_eu6g1und1r.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/1ikid1p7obc_eu6g1und1r.webp new file mode 100644 index 0000000..63b8e57 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/1ikid1p7obc_eu6g1und1r.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/1ikid1p7obc_eu6g1und1r.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/1ikid1p7obc_eu6g1und1r.webp.attrs new file mode 100644 index 0000000..7050316 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/1ikid1p7obc_eu6g1und1r.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"1.webp"},"md5":"ATVnLTgl41Z1Im8uQWlA+w=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/3ui1lot7b56_bjqh8b9qqz.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/3ui1lot7b56_bjqh8b9qqz.webp new file mode 100644 index 0000000..b344419 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/3ui1lot7b56_bjqh8b9qqz.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/3ui1lot7b56_bjqh8b9qqz.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/3ui1lot7b56_bjqh8b9qqz.webp.attrs new file mode 100644 index 0000000..da2ca1b --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/3ui1lot7b56_bjqh8b9qqz.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"3.webp"},"md5":"ZlpWSXdwJyLLctWbbta7dA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/4dpqiyrimdw_i7al27egu7.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/4dpqiyrimdw_i7al27egu7.webp new file mode 100644 index 0000000..de2a874 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/4dpqiyrimdw_i7al27egu7.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/4dpqiyrimdw_i7al27egu7.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/4dpqiyrimdw_i7al27egu7.webp.attrs new file mode 100644 index 0000000..dc0ecd2 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/4dpqiyrimdw_i7al27egu7.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"4.webp"},"md5":"MSfnrT0K0V/J1wU7L7//BQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/5w6lbvondhb_1cu8i5dqyk.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/5w6lbvondhb_1cu8i5dqyk.webp new file mode 100644 index 0000000..5ce22ff Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/5w6lbvondhb_1cu8i5dqyk.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/5w6lbvondhb_1cu8i5dqyk.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/5w6lbvondhb_1cu8i5dqyk.webp.attrs new file mode 100644 index 0000000..bfba5ed --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/5w6lbvondhb_1cu8i5dqyk.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"5.webp"},"md5":"mbDKA55L0ECCKEG5br653Q=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/100x100_1ikid1p7obc_eu6g1und1r.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/100x100_1ikid1p7obc_eu6g1und1r.webp new file mode 100644 index 0000000..d408bba Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/100x100_1ikid1p7obc_eu6g1und1r.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/100x100_1ikid1p7obc_eu6g1und1r.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/100x100_1ikid1p7obc_eu6g1und1r.webp.attrs new file mode 100644 index 0000000..7885063 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/100x100_1ikid1p7obc_eu6g1und1r.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"NPIquE5fkSCgSQWlXsWodQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/400x0_1ikid1p7obc_eu6g1und1r.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/400x0_1ikid1p7obc_eu6g1und1r.webp new file mode 100644 index 0000000..bddf7fa Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/400x0_1ikid1p7obc_eu6g1und1r.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/400x0_1ikid1p7obc_eu6g1und1r.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/400x0_1ikid1p7obc_eu6g1und1r.webp.attrs new file mode 100644 index 0000000..eef4ef9 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_1ikid1p7obc_eu6g1und1r.webp/400x0_1ikid1p7obc_eu6g1und1r.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"dmbS6pzyJCFvuZ83l+8QLQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/100x100_3ui1lot7b56_bjqh8b9qqz.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/100x100_3ui1lot7b56_bjqh8b9qqz.webp new file mode 100644 index 0000000..d4f8725 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/100x100_3ui1lot7b56_bjqh8b9qqz.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/100x100_3ui1lot7b56_bjqh8b9qqz.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/100x100_3ui1lot7b56_bjqh8b9qqz.webp.attrs new file mode 100644 index 0000000..82dee92 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/100x100_3ui1lot7b56_bjqh8b9qqz.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"nNs2RKawHZ+Ppoi8yz9ffg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/400x0_3ui1lot7b56_bjqh8b9qqz.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/400x0_3ui1lot7b56_bjqh8b9qqz.webp new file mode 100644 index 0000000..d65741f Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/400x0_3ui1lot7b56_bjqh8b9qqz.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/400x0_3ui1lot7b56_bjqh8b9qqz.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/400x0_3ui1lot7b56_bjqh8b9qqz.webp.attrs new file mode 100644 index 0000000..e4e52e9 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_3ui1lot7b56_bjqh8b9qqz.webp/400x0_3ui1lot7b56_bjqh8b9qqz.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"vZnTm4aQvlMATNAOrsIdFA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/100x100_4dpqiyrimdw_i7al27egu7.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/100x100_4dpqiyrimdw_i7al27egu7.webp new file mode 100644 index 0000000..89faec2 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/100x100_4dpqiyrimdw_i7al27egu7.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/100x100_4dpqiyrimdw_i7al27egu7.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/100x100_4dpqiyrimdw_i7al27egu7.webp.attrs new file mode 100644 index 0000000..7b0500d --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/100x100_4dpqiyrimdw_i7al27egu7.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"SK5zizJ7Hb4ocA/t71wfMA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/400x0_4dpqiyrimdw_i7al27egu7.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/400x0_4dpqiyrimdw_i7al27egu7.webp new file mode 100644 index 0000000..dc2cd9b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/400x0_4dpqiyrimdw_i7al27egu7.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/400x0_4dpqiyrimdw_i7al27egu7.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/400x0_4dpqiyrimdw_i7al27egu7.webp.attrs new file mode 100644 index 0000000..342cb78 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_4dpqiyrimdw_i7al27egu7.webp/400x0_4dpqiyrimdw_i7al27egu7.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"IlyLtAz/rnXPED2jx0uXSw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/100x100_5w6lbvondhb_1cu8i5dqyk.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/100x100_5w6lbvondhb_1cu8i5dqyk.webp new file mode 100644 index 0000000..a9a7a2d Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/100x100_5w6lbvondhb_1cu8i5dqyk.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/100x100_5w6lbvondhb_1cu8i5dqyk.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/100x100_5w6lbvondhb_1cu8i5dqyk.webp.attrs new file mode 100644 index 0000000..7cc0bbe --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/100x100_5w6lbvondhb_1cu8i5dqyk.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"ychAenq/Lmk/Lq9KPIOMGw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/400x0_5w6lbvondhb_1cu8i5dqyk.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/400x0_5w6lbvondhb_1cu8i5dqyk.webp new file mode 100644 index 0000000..6e8e5f7 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/400x0_5w6lbvondhb_1cu8i5dqyk.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/400x0_5w6lbvondhb_1cu8i5dqyk.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/400x0_5w6lbvondhb_1cu8i5dqyk.webp.attrs new file mode 100644 index 0000000..5495e95 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_5w6lbvondhb_1cu8i5dqyk.webp/400x0_5w6lbvondhb_1cu8i5dqyk.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"q/Tp9skDG/0nMJhCCoYq9Q=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/100x100_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/100x100_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp new file mode 100644 index 0000000..156205e Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/100x100_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/100x100_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/100x100_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs new file mode 100644 index 0000000..f5d6979 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/100x100_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"rpgHgFhEo4fblf9ifVS5oQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/400x0_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/400x0_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp new file mode 100644 index 0000000..9272bb9 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/400x0_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/400x0_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/400x0_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs new file mode 100644 index 0000000..3a5eb6b --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/thumbs_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp/400x0_xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"soCq5KHXXA5Odk+Ch5tu2Q=="} diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp new file mode 100644 index 0000000..26299c4 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs new file mode 100644 index 0000000..134bf6b --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/86glupn9q338128/xwentylacja_jpg_pagespeed_ic_t26gq0pbgf.K8NPUBxjti.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"xwentylacja.jpg.pagespeed.ic.K8NPUBxjti.webp"},"md5":"K8NPUBxjtiO4BIz31WBdoA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_1_dan2637pam_ucj4d90axt.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_1_dan2637pam_ucj4d90axt.webp new file mode 100644 index 0000000..458b45c Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_1_dan2637pam_ucj4d90axt.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_1_dan2637pam_ucj4d90axt.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_1_dan2637pam_ucj4d90axt.webp.attrs new file mode 100644 index 0000000..f8f907c --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_1_dan2637pam_ucj4d90axt.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"frame_221_1_dan2637pam.webp"},"md5":"rAv5zlwLtTraxxoMaR6YsA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_2_iqhntahsw5_5ggtzwuol2.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_2_iqhntahsw5_5ggtzwuol2.webp new file mode 100644 index 0000000..e665cd0 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_2_iqhntahsw5_5ggtzwuol2.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs new file mode 100644 index 0000000..be29c14 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"frame_221_2_iqhntahsw5.webp"},"md5":"b58rnncm0fwYvrBvuAQP/A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_w3fhqmxdku_w6v43w4x0s.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_w3fhqmxdku_w6v43w4x0s.webp new file mode 100644 index 0000000..ac8c844 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_w3fhqmxdku_w6v43w4x0s.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs new file mode 100644 index 0000000..d6e28c0 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"frame_221_w3fhqmxdku.webp"},"md5":"pTkYysw2EJHX+a+nD16WPQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/100x100_frame_221_1_dan2637pam_ucj4d90axt.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/100x100_frame_221_1_dan2637pam_ucj4d90axt.webp new file mode 100644 index 0000000..20a6d23 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/100x100_frame_221_1_dan2637pam_ucj4d90axt.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/100x100_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/100x100_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs new file mode 100644 index 0000000..4eccdd0 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/100x100_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"do1t2gJo8e2Ci0wxDuULlg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/400x0_frame_221_1_dan2637pam_ucj4d90axt.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/400x0_frame_221_1_dan2637pam_ucj4d90axt.webp new file mode 100644 index 0000000..ab5a8c4 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/400x0_frame_221_1_dan2637pam_ucj4d90axt.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/400x0_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/400x0_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs new file mode 100644 index 0000000..91fffc1 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/400x0_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"tCWWfQxOHFiPn3vdvIJ/uA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/600x0_frame_221_1_dan2637pam_ucj4d90axt.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/600x0_frame_221_1_dan2637pam_ucj4d90axt.webp new file mode 100644 index 0000000..1f4caa7 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/600x0_frame_221_1_dan2637pam_ucj4d90axt.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/600x0_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/600x0_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs new file mode 100644 index 0000000..28cf8da --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_1_dan2637pam_ucj4d90axt.webp/600x0_frame_221_1_dan2637pam_ucj4d90axt.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"XiRUzslbbs6PLdA+Hora8Q=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/100x100_frame_221_2_iqhntahsw5_5ggtzwuol2.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/100x100_frame_221_2_iqhntahsw5_5ggtzwuol2.webp new file mode 100644 index 0000000..4c98375 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/100x100_frame_221_2_iqhntahsw5_5ggtzwuol2.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/100x100_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/100x100_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs new file mode 100644 index 0000000..69c9fb9 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/100x100_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"Y/2mDwDYMa3nRFdmVgLDEQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/1200x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/1200x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp new file mode 100644 index 0000000..ebee99a Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/1200x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/1200x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/1200x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs new file mode 100644 index 0000000..a255e37 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/1200x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"FUe6FgF1djUn9jFJgAOdpA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/400x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/400x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp new file mode 100644 index 0000000..7c5058e Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/400x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/400x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/400x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs new file mode 100644 index 0000000..332e8f4 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/400x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"/fktQTUpXvLEdIzlNzIzQA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/600x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/600x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp new file mode 100644 index 0000000..340aee7 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/600x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/600x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/600x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs new file mode 100644 index 0000000..72c88de --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_2_iqhntahsw5_5ggtzwuol2.webp/600x0_frame_221_2_iqhntahsw5_5ggtzwuol2.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"OzUMMhMK7olbFtR/WGzUZA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/100x100_frame_221_w3fhqmxdku_w6v43w4x0s.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/100x100_frame_221_w3fhqmxdku_w6v43w4x0s.webp new file mode 100644 index 0000000..3c4d397 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/100x100_frame_221_w3fhqmxdku_w6v43w4x0s.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/100x100_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/100x100_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs new file mode 100644 index 0000000..23f9364 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/100x100_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"QV9BS6bENxI8BsKazPLaJg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/400x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/400x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp new file mode 100644 index 0000000..2ab0960 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/400x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/400x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/400x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs new file mode 100644 index 0000000..19cc5c6 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/400x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"iWIoNvTZJZ39kuYWqQWqOQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/600x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/600x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp new file mode 100644 index 0000000..bf7db2b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/600x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/600x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/600x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs new file mode 100644 index 0000000..682dda6 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9fdcv62s34691n9/thumbs_frame_221_w3fhqmxdku_w6v43w4x0s.webp/600x0_frame_221_w3fhqmxdku_w6v43w4x0s.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"w/sgTCn1kd81q1iJkjMJqA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/16287_3oxzirywk6_2oy0lrel23.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/16287_3oxzirywk6_2oy0lrel23.webp new file mode 100644 index 0000000..84a9f30 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/16287_3oxzirywk6_2oy0lrel23.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/16287_3oxzirywk6_2oy0lrel23.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/16287_3oxzirywk6_2oy0lrel23.webp.attrs new file mode 100644 index 0000000..65251a8 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/16287_3oxzirywk6_2oy0lrel23.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"16287_3oxzirywk6.webp"},"md5":"VClSz1RdBg+EyNQK4nGc2A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp new file mode 100644 index 0000000..00848dc Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs new file mode 100644 index 0000000..9a2d42c --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"intellectual-man-reading-book-sitting-library-front-bookshelves-with-cup-coffee-hands.webp"},"md5":"9xBEkQNdisH2w/pP8tsq0w=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/100x100_16287_3oxzirywk6_2oy0lrel23.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/100x100_16287_3oxzirywk6_2oy0lrel23.webp new file mode 100644 index 0000000..acb9a7a Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/100x100_16287_3oxzirywk6_2oy0lrel23.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/100x100_16287_3oxzirywk6_2oy0lrel23.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/100x100_16287_3oxzirywk6_2oy0lrel23.webp.attrs new file mode 100644 index 0000000..72080dc --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/100x100_16287_3oxzirywk6_2oy0lrel23.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"QkKwCdnib3fPV7ufIa+Rtg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/1200x0_16287_3oxzirywk6_2oy0lrel23.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/1200x0_16287_3oxzirywk6_2oy0lrel23.webp new file mode 100644 index 0000000..26ccb72 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/1200x0_16287_3oxzirywk6_2oy0lrel23.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/1200x0_16287_3oxzirywk6_2oy0lrel23.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/1200x0_16287_3oxzirywk6_2oy0lrel23.webp.attrs new file mode 100644 index 0000000..2b93317 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/1200x0_16287_3oxzirywk6_2oy0lrel23.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"CQ7Xk4GtjoIyrU7sHZMhEw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/600x0_16287_3oxzirywk6_2oy0lrel23.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/600x0_16287_3oxzirywk6_2oy0lrel23.webp new file mode 100644 index 0000000..f075a57 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/600x0_16287_3oxzirywk6_2oy0lrel23.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/600x0_16287_3oxzirywk6_2oy0lrel23.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/600x0_16287_3oxzirywk6_2oy0lrel23.webp.attrs new file mode 100644 index 0000000..b2bbba5 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_16287_3oxzirywk6_2oy0lrel23.webp/600x0_16287_3oxzirywk6_2oy0lrel23.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"K7HlO+qaH/X4IK7anhK+cQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/100x100_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/100x100_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp new file mode 100644 index 0000000..c69b9a0 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/100x100_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/100x100_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/100x100_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs new file mode 100644 index 0000000..b301a3f --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/100x100_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"/C2PM14bI4wD5k8+rqiWQg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/1200x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/1200x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp new file mode 100644 index 0000000..2cea64d Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/1200x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/1200x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/1200x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs new file mode 100644 index 0000000..4ccf047 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/1200x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"rYk/P3DDVUpQ+vZ/5sJtoQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/600x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/600x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp new file mode 100644 index 0000000..b9d5e65 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/600x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/600x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/600x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs new file mode 100644 index 0000000..4af1787 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/9tq67fx9chqygp6/thumbs_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp/600x0_intellectual_man_reading_book_sitting_library_front_bookshelves_with_cup_coffee_hands_zwsmxwnfdd.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"O6bIq65bIzlgONEkFcYgww=="} diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_1s5e9ok2hm.png b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_1s5e9ok2hm.png new file mode 100644 index 0000000..d108f5b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_1s5e9ok2hm.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_1s5e9ok2hm.png.attrs b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_1s5e9ok2hm.png.attrs new file mode 100644 index 0000000..f0afb19 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_1s5e9ok2hm.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":{"original-filename":"Rectangle 87 (1).png"},"md5":"lS4nkGq5HfxEeGNRjt/5zw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_e9rp6ybaze.png b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_e9rp6ybaze.png new file mode 100644 index 0000000..d108f5b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_e9rp6ybaze.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_e9rp6ybaze.png.attrs b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_e9rp6ybaze.png.attrs new file mode 100644 index 0000000..f0afb19 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_e9rp6ybaze.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":{"original-filename":"Rectangle 87 (1).png"},"md5":"lS4nkGq5HfxEeGNRjt/5zw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_vrmzykano2.png b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_vrmzykano2.png new file mode 100644 index 0000000..d108f5b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_vrmzykano2.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_vrmzykano2.png.attrs b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_vrmzykano2.png.attrs new file mode 100644 index 0000000..f0afb19 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/rectangle_87_1_vrmzykano2.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":{"original-filename":"Rectangle 87 (1).png"},"md5":"lS4nkGq5HfxEeGNRjt/5zw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_1s5e9ok2hm.png/100x100_rectangle_87_1_1s5e9ok2hm.png b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_1s5e9ok2hm.png/100x100_rectangle_87_1_1s5e9ok2hm.png new file mode 100644 index 0000000..9166104 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_1s5e9ok2hm.png/100x100_rectangle_87_1_1s5e9ok2hm.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_1s5e9ok2hm.png/100x100_rectangle_87_1_1s5e9ok2hm.png.attrs b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_1s5e9ok2hm.png/100x100_rectangle_87_1_1s5e9ok2hm.png.attrs new file mode 100644 index 0000000..cb3e1a7 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_1s5e9ok2hm.png/100x100_rectangle_87_1_1s5e9ok2hm.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"Dy5BcTGRx2frh/nW/HHg5A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_e9rp6ybaze.png/100x100_rectangle_87_1_e9rp6ybaze.png b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_e9rp6ybaze.png/100x100_rectangle_87_1_e9rp6ybaze.png new file mode 100644 index 0000000..9166104 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_e9rp6ybaze.png/100x100_rectangle_87_1_e9rp6ybaze.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_e9rp6ybaze.png/100x100_rectangle_87_1_e9rp6ybaze.png.attrs b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_e9rp6ybaze.png/100x100_rectangle_87_1_e9rp6ybaze.png.attrs new file mode 100644 index 0000000..cb3e1a7 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_e9rp6ybaze.png/100x100_rectangle_87_1_e9rp6ybaze.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"Dy5BcTGRx2frh/nW/HHg5A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_vrmzykano2.png/100x100_rectangle_87_1_vrmzykano2.png b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_vrmzykano2.png/100x100_rectangle_87_1_vrmzykano2.png new file mode 100644 index 0000000..9166104 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_vrmzykano2.png/100x100_rectangle_87_1_vrmzykano2.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_vrmzykano2.png/100x100_rectangle_87_1_vrmzykano2.png.attrs b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_vrmzykano2.png/100x100_rectangle_87_1_vrmzykano2.png.attrs new file mode 100644 index 0000000..cb3e1a7 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/ehc7246928u310a/thumbs_rectangle_87_1_vrmzykano2.png/100x100_rectangle_87_1_vrmzykano2.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"Dy5BcTGRx2frh/nW/HHg5A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/1bffntlo94a_kah2v59bfx_887r8sw3zx.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/1bffntlo94a_kah2v59bfx_887r8sw3zx.webp new file mode 100644 index 0000000..0ffc7a5 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/1bffntlo94a_kah2v59bfx_887r8sw3zx.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs new file mode 100644 index 0000000..2e5c070 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"1bffntlo94a_kah2v59bfx.webp"},"md5":"ak6IGO0lXJISYPgoYNH8Ow=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp new file mode 100644 index 0000000..ba4f69b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs new file mode 100644 index 0000000..9027ed4 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"25l564n7l16_kf9l7z7ebb.webp"},"md5":"miY+sfqOSCl1HHP0BaLLyQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp new file mode 100644 index 0000000..cbc747d Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs new file mode 100644 index 0000000..4a83b8d --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"3ta9lvi189k_pb3sjrop16.webp"},"md5":"G3ZahkwsNI7Y8T6veh/4Vg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp new file mode 100644 index 0000000..6855042 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs new file mode 100644 index 0000000..e0cdd00 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"4vo1vx81dub_wzrdx3mggb.webp"},"md5":"y3Jw2L+lCaSXZZJ9+maMHw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp new file mode 100644 index 0000000..76ab924 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs new file mode 100644 index 0000000..e66afa8 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"5hpg3kpqgsr_pqbntscef7.webp"},"md5":"METwdgKy+lxQkAvZLZVupA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/100x100_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/100x100_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp new file mode 100644 index 0000000..8006238 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/100x100_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/100x100_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/100x100_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs new file mode 100644 index 0000000..c82702e --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/100x100_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"ko1UEvhIbdhGV0/Xm1RSlA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/400x0_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/400x0_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp new file mode 100644 index 0000000..28c6ce1 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/400x0_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/400x0_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/400x0_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs new file mode 100644 index 0000000..38279ab --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp/400x0_1bffntlo94a_kah2v59bfx_887r8sw3zx.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"//qwaTxcNEuP8muJA0BWew=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/100x100_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/100x100_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp new file mode 100644 index 0000000..8f291b8 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/100x100_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/100x100_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/100x100_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs new file mode 100644 index 0000000..6ae919f --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/100x100_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"2tsdqXYrJ7GMWS7AeGBSVA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/400x0_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/400x0_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp new file mode 100644 index 0000000..ac56cf4 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/400x0_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/400x0_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/400x0_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs new file mode 100644 index 0000000..ea68183 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp/400x0_25l564n7l16_kf9l7z7ebb_bqgluubuz4.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"mrkX79xie+i3YrOVxEG+aw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/100x100_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/100x100_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp new file mode 100644 index 0000000..e3df0b1 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/100x100_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/100x100_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/100x100_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs new file mode 100644 index 0000000..8dc0f19 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/100x100_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"Zt4yQs6TwJafGeuboL4ZGA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/400x0_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/400x0_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp new file mode 100644 index 0000000..e30efa1 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/400x0_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/400x0_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/400x0_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs new file mode 100644 index 0000000..e34c140 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp/400x0_3ta9lvi189k_pb3sjrop16_38ovq3oofx.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"7UI6Pn8oiZxfAovBVEUpDA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/100x100_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/100x100_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp new file mode 100644 index 0000000..29ea704 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/100x100_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/100x100_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/100x100_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs new file mode 100644 index 0000000..5580088 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/100x100_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"NJ/i6LzrBiqxJuDCXsH2uQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/400x0_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/400x0_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp new file mode 100644 index 0000000..f9229dd Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/400x0_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/400x0_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/400x0_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs new file mode 100644 index 0000000..c07cd2d --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp/400x0_4vo1vx81dub_wzrdx3mggb_2j1b8u722j.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"Um7s0HuQQ+71e3QfgKIhyw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/100x100_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/100x100_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp new file mode 100644 index 0000000..f511b1c Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/100x100_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/100x100_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/100x100_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs new file mode 100644 index 0000000..6d8bd11 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/100x100_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"SlJ0gxn0Gy705u2SshSEIg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/400x0_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/400x0_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp new file mode 100644 index 0000000..dfbc0dc Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/400x0_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/400x0_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/400x0_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs new file mode 100644 index 0000000..43b99cd --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/go7rv6126275278/thumbs_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp/400x0_5hpg3kpqgsr_pqbntscef7_lu6zb8cper.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"NdP9GQAdipYw33ehRq5CEA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/frame_234_fsktezve8m.png b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/frame_234_fsktezve8m.png new file mode 100644 index 0000000..c81a762 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/frame_234_fsktezve8m.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/frame_234_fsktezve8m.png.attrs b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/frame_234_fsktezve8m.png.attrs new file mode 100644 index 0000000..047e00b --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/frame_234_fsktezve8m.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":{"original-filename":"Frame 234.png"},"md5":"7g691qti6nNy/Rv26oYM3A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/100x100_frame_234_fsktezve8m.png b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/100x100_frame_234_fsktezve8m.png new file mode 100644 index 0000000..06fd03b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/100x100_frame_234_fsktezve8m.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/100x100_frame_234_fsktezve8m.png.attrs b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/100x100_frame_234_fsktezve8m.png.attrs new file mode 100644 index 0000000..0c06f57 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/100x100_frame_234_fsktezve8m.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"NAS5DT9IsEUw7xPso+rmiQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/120x0_frame_234_fsktezve8m.png b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/120x0_frame_234_fsktezve8m.png new file mode 100644 index 0000000..d2ca138 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/120x0_frame_234_fsktezve8m.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/120x0_frame_234_fsktezve8m.png.attrs b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/120x0_frame_234_fsktezve8m.png.attrs new file mode 100644 index 0000000..ef56845 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/120x0_frame_234_fsktezve8m.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"tkTIKFhlMb/LUigXxgdhFA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/1920x0_frame_234_fsktezve8m.png b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/1920x0_frame_234_fsktezve8m.png new file mode 100644 index 0000000..13d3643 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/1920x0_frame_234_fsktezve8m.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/1920x0_frame_234_fsktezve8m.png.attrs b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/1920x0_frame_234_fsktezve8m.png.attrs new file mode 100644 index 0000000..a98100b --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/1920x0_frame_234_fsktezve8m.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"fRTMzD3PV+j13dx9ecD9Pw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/400x0_frame_234_fsktezve8m.png b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/400x0_frame_234_fsktezve8m.png new file mode 100644 index 0000000..1563766 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/400x0_frame_234_fsktezve8m.png differ diff --git a/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/400x0_frame_234_fsktezve8m.png.attrs b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/400x0_frame_234_fsktezve8m.png.attrs new file mode 100644 index 0000000..c3bf6c6 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/js764374sc7o98t/thumbs_frame_234_fsktezve8m.png/400x0_frame_234_fsktezve8m.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"wrs+24h+AXcq2qjHMMfCkw=="} diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_276_ymxcthlpw9.svg b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_276_ymxcthlpw9.svg new file mode 100644 index 0000000..863710f --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_276_ymxcthlpw9.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_276_ymxcthlpw9.svg.attrs b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_276_ymxcthlpw9.svg.attrs new file mode 100644 index 0000000..b46acad --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_276_ymxcthlpw9.svg.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/svg+xml","user.metadata":{"original-filename":"Frame 276.svg"},"md5":"FmE4W/KU2enjD81Ekdlp3w=="} diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_277_l4opyn8gfv.svg b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_277_l4opyn8gfv.svg new file mode 100644 index 0000000..7190ddb --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_277_l4opyn8gfv.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_277_l4opyn8gfv.svg.attrs b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_277_l4opyn8gfv.svg.attrs new file mode 100644 index 0000000..95d4c73 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_277_l4opyn8gfv.svg.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/svg+xml","user.metadata":{"original-filename":"Frame 277.svg"},"md5":"6WiwHQF27kwTZg0U1aA/6A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_278_pie5unttvk.svg b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_278_pie5unttvk.svg new file mode 100644 index 0000000..c7be825 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_278_pie5unttvk.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_278_pie5unttvk.svg.attrs b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_278_pie5unttvk.svg.attrs new file mode 100644 index 0000000..05d723e --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_278_pie5unttvk.svg.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/svg+xml","user.metadata":{"original-filename":"Frame 278.svg"},"md5":"oiBAwzKKUxnH6mdV4sD2pA=="} diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_279_uax87xqj1s.svg b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_279_uax87xqj1s.svg new file mode 100644 index 0000000..245b394 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_279_uax87xqj1s.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_279_uax87xqj1s.svg.attrs b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_279_uax87xqj1s.svg.attrs new file mode 100644 index 0000000..557a1b5 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_279_uax87xqj1s.svg.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/svg+xml","user.metadata":{"original-filename":"Frame 279.svg"},"md5":"OXGOsWOCDNPV1WSbEELWNg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_280_iaqdzwifw1.svg b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_280_iaqdzwifw1.svg new file mode 100644 index 0000000..ab7580c --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_280_iaqdzwifw1.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_280_iaqdzwifw1.svg.attrs b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_280_iaqdzwifw1.svg.attrs new file mode 100644 index 0000000..83128ca --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_280_iaqdzwifw1.svg.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/svg+xml","user.metadata":{"original-filename":"Frame 280.svg"},"md5":"Y370C6VwoxF/m/YluDbqJQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_281_y0w2pqr6uh.svg b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_281_y0w2pqr6uh.svg new file mode 100644 index 0000000..aed4bac --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_281_y0w2pqr6uh.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_281_y0w2pqr6uh.svg.attrs b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_281_y0w2pqr6uh.svg.attrs new file mode 100644 index 0000000..b997bc4 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/nl2m32n542411z6/frame_281_y0w2pqr6uh.svg.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/svg+xml","user.metadata":{"original-filename":"Frame 281.svg"},"md5":"SeteB8qp7BAPfeJjfIvu1g=="} diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution2_ims76klq1t.webp b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution2_ims76klq1t.webp new file mode 100644 index 0000000..416b700 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution2_ims76klq1t.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution2_ims76klq1t.webp.attrs b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution2_ims76klq1t.webp.attrs new file mode 100644 index 0000000..7d5e097 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution2_ims76klq1t.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"solution2.webp"},"md5":"iauH+nhb+Uz+ReVa0WHgBg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution3_7f0wuhzs1n.webp b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution3_7f0wuhzs1n.webp new file mode 100644 index 0000000..10e9957 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution3_7f0wuhzs1n.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution3_7f0wuhzs1n.webp.attrs b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution3_7f0wuhzs1n.webp.attrs new file mode 100644 index 0000000..de526e6 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/solution3_7f0wuhzs1n.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":{"original-filename":"solution3.webp"},"md5":"S8HSpoqaQDHVi0c40ee8SQ=="} diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/100x100_solution2_ims76klq1t.webp b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/100x100_solution2_ims76klq1t.webp new file mode 100644 index 0000000..b9e0fc0 Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/100x100_solution2_ims76klq1t.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/100x100_solution2_ims76klq1t.webp.attrs b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/100x100_solution2_ims76klq1t.webp.attrs new file mode 100644 index 0000000..949853f --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/100x100_solution2_ims76klq1t.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"0lkqO3/0kF+Gk9mAr5Rhkg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/400x0_solution2_ims76klq1t.webp b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/400x0_solution2_ims76klq1t.webp new file mode 100644 index 0000000..3e9e58b Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/400x0_solution2_ims76klq1t.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/400x0_solution2_ims76klq1t.webp.attrs b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/400x0_solution2_ims76klq1t.webp.attrs new file mode 100644 index 0000000..e0d59db --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution2_ims76klq1t.webp/400x0_solution2_ims76klq1t.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"tTwKUH5bshw5MYVZJ+nr6A=="} diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/100x100_solution3_7f0wuhzs1n.webp b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/100x100_solution3_7f0wuhzs1n.webp new file mode 100644 index 0000000..43ac88d Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/100x100_solution3_7f0wuhzs1n.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/100x100_solution3_7f0wuhzs1n.webp.attrs b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/100x100_solution3_7f0wuhzs1n.webp.attrs new file mode 100644 index 0000000..d1393f7 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/100x100_solution3_7f0wuhzs1n.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"TmhVWThufyRPutnoc5WObg=="} diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/400x0_solution3_7f0wuhzs1n.webp b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/400x0_solution3_7f0wuhzs1n.webp new file mode 100644 index 0000000..04df64c Binary files /dev/null and b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/400x0_solution3_7f0wuhzs1n.webp differ diff --git a/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/400x0_solution3_7f0wuhzs1n.webp.attrs b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/400x0_solution3_7f0wuhzs1n.webp.attrs new file mode 100644 index 0000000..85093a2 --- /dev/null +++ b/backend/pb_data/storage/pbc_3156215045/q8g9mi6gj5696i2/thumbs_solution3_7f0wuhzs1n.webp/400x0_solution3_7f0wuhzs1n.webp.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/webp","user.metadata":null,"md5":"EVrSDKdh5dCVe9SKTKu1VA=="} diff --git a/backend/pb_data/storage/pbc_3811519599/7764r0n66k63b38/rectangle_23_trn1wqupw3.png b/backend/pb_data/storage/pbc_3811519599/7764r0n66k63b38/rectangle_23_trn1wqupw3.png new file mode 100644 index 0000000..820c1a2 Binary files /dev/null and b/backend/pb_data/storage/pbc_3811519599/7764r0n66k63b38/rectangle_23_trn1wqupw3.png differ diff --git a/backend/pb_data/storage/pbc_3811519599/7764r0n66k63b38/rectangle_23_trn1wqupw3.png.attrs b/backend/pb_data/storage/pbc_3811519599/7764r0n66k63b38/rectangle_23_trn1wqupw3.png.attrs new file mode 100644 index 0000000..780ed25 --- /dev/null +++ b/backend/pb_data/storage/pbc_3811519599/7764r0n66k63b38/rectangle_23_trn1wqupw3.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":{"original-filename":"Rectangle 23.png"},"md5":"qUBsjdBRa848MIntABFkbQ=="} diff --git a/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/rectangle_23_onk0hbdeix.png b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/rectangle_23_onk0hbdeix.png new file mode 100644 index 0000000..820c1a2 Binary files /dev/null and b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/rectangle_23_onk0hbdeix.png differ diff --git a/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/rectangle_23_onk0hbdeix.png.attrs b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/rectangle_23_onk0hbdeix.png.attrs new file mode 100644 index 0000000..780ed25 --- /dev/null +++ b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/rectangle_23_onk0hbdeix.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":{"original-filename":"Rectangle 23.png"},"md5":"qUBsjdBRa848MIntABFkbQ=="} diff --git a/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/thumbs_rectangle_23_onk0hbdeix.png/100x100_rectangle_23_onk0hbdeix.png b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/thumbs_rectangle_23_onk0hbdeix.png/100x100_rectangle_23_onk0hbdeix.png new file mode 100644 index 0000000..29abb1b Binary files /dev/null and b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/thumbs_rectangle_23_onk0hbdeix.png/100x100_rectangle_23_onk0hbdeix.png differ diff --git a/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/thumbs_rectangle_23_onk0hbdeix.png/100x100_rectangle_23_onk0hbdeix.png.attrs b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/thumbs_rectangle_23_onk0hbdeix.png/100x100_rectangle_23_onk0hbdeix.png.attrs new file mode 100644 index 0000000..b5d5a63 --- /dev/null +++ b/backend/pb_data/storage/pbc_3811519599/knc0cylaksrc750/thumbs_rectangle_23_onk0hbdeix.png/100x100_rectangle_23_onk0hbdeix.png.attrs @@ -0,0 +1 @@ +{"user.cache_control":"","user.content_disposition":"","user.content_encoding":"","user.content_language":"","user.content_type":"image/png","user.metadata":null,"md5":"egVyUeYIJX8vEsjEmx1opQ=="} diff --git a/backend/tmp/main b/backend/tmp/main new file mode 100755 index 0000000..597405f Binary files /dev/null and b/backend/tmp/main differ diff --git a/composables/usePB.ts b/composables/usePB.ts new file mode 100644 index 0000000..3285404 --- /dev/null +++ b/composables/usePB.ts @@ -0,0 +1,15 @@ +// import { ref } from 'vue'; +import pocketbase from "pocketbase"; + +export const usePB = () => { + const nuxtApp = useNuxtApp(); + + const isServer = !!nuxtApp.ssrContext; + if (isServer) { + const pb = new pocketbase(process.env.POCKETBASE_URL || "http://127.0.0.1:8090"); + return pb; + } + + const pb = new pocketbase(window.location.origin); + return pb; +}; diff --git a/package.json b/package.json index f4bd2d5..3885c86 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@pinia/nuxt": "^0.11.0", "@tailwindcss/vite": "^4.1.7", "nuxt": "^3.17.4", + "pocketbase": "^0.26.0", "tailwindcss": "^4.1.7", "vue": "^3.5.14", "vue-router": "^4.5.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fa62df7..21a71c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,7 +25,10 @@ importers: version: 4.1.7(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0)) nuxt: specifier: ^3.17.4 - version: 3.17.4(@parcel/watcher@2.5.1)(@types/node@22.15.21)(db0@0.3.2)(encoding@0.1.13)(eslint@9.27.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(yaml@2.8.0) + version: 3.17.4(@parcel/watcher@2.5.1)(@types/node@22.15.21)(db0@0.3.2)(eslint@9.27.0(jiti@2.4.2))(ioredis@5.6.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.41.0)(terser@5.39.2)(typescript@5.8.3)(vite@6.3.5(@types/node@22.15.21)(jiti@2.4.2)(lightningcss@1.30.1)(terser@5.39.2)(yaml@2.8.0))(yaml@2.8.0) + pocketbase: + specifier: ^0.26.0 + version: 0.26.0 tailwindcss: specifier: ^4.1.7 version: 4.1.7 @@ -4471,6 +4474,9 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} + pocketbase@0.26.0: + resolution: {integrity: sha512-WBBeOgz4Jnrd7a1KEzSBUJqpTortKKCcp16j5KoF+4tNIyQHsmynj+qRSvS56/RVacVMbAqO8Qkfj3N84fpzEw==} + portfinder@1.0.37: resolution: {integrity: sha512-yuGIEjDAYnnOex9ddMnKZEMFE0CcGo6zbfzDklkmT1m5z734ss6JMzN9rNB3+RR7iS+F10D4/BVIaXOyh8PQKw==} engines: {node: '>= 10.12'} @@ -11405,6 +11411,8 @@ snapshots: pluralize@8.0.0: {} + pocketbase@0.26.0: {} + portfinder@1.0.37: dependencies: async: 3.2.6 diff --git a/taskfile.yml b/taskfile.yml index 6551951..1d6627a 100644 --- a/taskfile.yml +++ b/taskfile.yml @@ -13,56 +13,56 @@ tasks: - task --list silent: true - # compile_musl: - # aliases: [cm] - # desc: "compiles pocketbase for musl" - # env: - # CGO_ENABLED: "0" - # GOOS: "linux" - # GOARCH: "amd64" - # CC: "x86_64-linux-musl-gcc" - # cmds: - # - | - # mkdir -p ./.output - # cd ./backend - # {{.CompileStr}} + compile_musl: + aliases: [cm] + desc: "compiles pocketbase for musl" + env: + CGO_ENABLED: "0" + GOOS: "linux" + GOARCH: "amd64" + CC: "x86_64-linux-musl-gcc" + cmds: + - | + mkdir -p ./.output + cd ./backend + {{.CompileStr}} - # compile_gnu: - # aliases: [cg] - # desc: "compiles pocketbase for gnu" - # env: - # CGO_ENABLED: "0" - # GOOS: "linux" - # GOARCH: "amd64" - # cmds: - # - | - # mkdir -p ./.output - # cd ./backend - # {{.CompileStr}} + compile_gnu: + aliases: [cg] + desc: "compiles pocketbase for gnu" + env: + CGO_ENABLED: "0" + GOOS: "linux" + GOARCH: "amd64" + cmds: + - | + mkdir -p ./.output + cd ./backend + {{.CompileStr}} - # build_run_gnu: - # aliases: [br] - # desc: "compiles pocketbase for gnu" - # env: - # CGO_ENABLED: "0" - # GOOS: "linux" - # GOARCH: "amd64" - # cmds: - # - | - # mkdir -p ./.output - # cd ./backend - # go build -ldflags "-s -w" -o ../.pocketbase/pocketbase . - # cd .. - # ./.pocketbase/pocketbase serve --dir=./backend/pb_data + build_run_gnu: + aliases: [br] + desc: "compiles pocketbase for gnu" + env: + CGO_ENABLED: "0" + GOOS: "linux" + GOARCH: "amd64" + cmds: + - | + mkdir -p ./.output + cd ./backend + go build -ldflags "-s -w" -o ../.pocketbase/pocketbase . + cd .. + ./.pocketbase/pocketbase serve --dir=./backend/pb_data - # watch_backend: - # aliases: [wb] - # desc: "watch backend and compile" - # cmds: - # - | - # cd ./backend - # pwd - # air -build.args_bin='serve --dir=./pb_data' -build.exclude_dir=pb_data,backups -build.include_ext=go + watch_backend: + aliases: [wb] + desc: "watch backend and compile" + cmds: + - | + cd ./backend + pwd + air -build.args_bin='serve --dir=./pb_data' -build.exclude_dir=pb_data,backups -build.include_ext=go watch_front: aliases: [wf]