Files
gw-svelte/mail-api/__pycache__/main.cpython-314.pyc
T

1105 lines
124 KiB
Plaintext
Raw Normal View History

2026-05-04 20:32:24 +12:00
+
½jJkãó at0t^RIt^RIHt^RIt^RIt^RIt^RIt^RIt^RI t ^RI
2026-05-04 20:32:24 +12:00
t
^RI t ^RI t ^RI
t
2026-05-04 20:32:24 +12:00
^RIHt^RIHt^RIt^RIHtHtHt^RIHt^RIHtHtRR lt]!4t]P:P=R
R 4P?4PA4R·9t!R R
RR/t"RRlt#]#!4t$]P:P=RR4t%]&!^<]'!]P:P=RR444t(]&!R]'!]P:P=R])!R¸4444t*^t+^t,]&!^]'!]P:P=RR444t-]&!^<]'!]P:P=RR444t.]&!^<]'!]P:P=RR444t/]!]P:P=RR44R, t0]!]P:P=RR44R , t1]!]P:P=RR44R!, t2]$R",]n3]$R#,t4]$R$,t5]$R%,t6]$R&,t7]$R',t8]$R(,t9]$R),t:]$R*,t;]$R+,t<]$R,,t=]$R-,t>]$R.,t?]$R/,t@R0tA]P…R1]%]P:P=R2R34]7]8]4]5]6]9]:];]<]=]>]?]@4]!R4R57tC]5'd]5PA4R68wd]5MR tDR7R8ltER9R:ltFR;R<ltGR=R>ltHR?R@ltIRARBltJ]E!4tK]^k/tL]^k/tM]^k/tN]^k]G!4tO]^k]I!4tP]^k/tQ]^k/tR]^k]!4tT]P…RC]U!]K44RDREltVRFRGltWRHRIltXRJRKltY]CPµ]RL.RMRN.RL.RO7]CP·RP4RQRRl4t\!RSRT]4t]!RURV]]4t^!RWRX]]4t_!RYRZ]]4t`R[R\lta/tb]^k/tc]^ k]!4tdR]R^lteR_R`ltfRaRbltgRcRdlthReRfltiRgRhltjRiRjltkRkRlltlRmRnltmRoRpltnRqRrltoRsRtltpRuRvltqRwRxltrRyRzltsR{R|lttR}R~ltuRR€ltvR¹RRlltwRƒR„ltxR…R†ltyR‡RˆltzR‰lt{Rlt|Rlt}]CPýR4RRl4t]CP=R4R“R”l4t€R•Rlt] EP!R—4tƒ]CEP R˜4R™l4t…]CEP R4Rl4t†]CP=Rž4R l4t‡]CEP R¡4l4tˆ]CEP R¤4l4t‰]CEP R§4l4tŠRªltR­ltŒR®lt]CEP R°4l4tŽ]CEP R³4R´l4tR#)ºéN)Údeque)Údatetime)ÚPath)ÚFastAPIÚ
HTTPExceptionÚRequest)ÚCORSMiddleware)Ú BaseModelÚEmailStrcó8V^8„dQhR\P/#©éÚreturn)ÚloggingÚLogger)Úformats"Ú3C:\Users\mattc\gw-svelte\gw-svelte\mail-api\main.pyÚ __annotate__rs÷ñœŸñócód\\PPRR44pVP RRR7VR, p\
P !RRR7p\
P!4pVP\
P4\VP4FpVPV4K \
P!\P4pVP\
P 4VP#V4VP%V4\
PP'VR^R R
2026-05-04 20:32:24 +12:00
7pVP\
P4VP#V4VP%V4\
P!R 4pVP)R V4V#)
ÚLOG_DIRÚlogsT©ÚparentsÚexist_okz mail-api.logz1%(asctime)s %(levelname)-8s %(name)s: %(message)sz%d/%m/%Y %H:%M:%S %Z)Údatefmti€„úutf-8)ÚmaxBytesÚ backupCountÚencodingzmail-apiu?Logging initialised → console=INFO, file=%s (DEBUG, rotating))rÚosÚenvironÚgetÚmkdirrÚ FormatterÚ getLoggerÚsetLevelÚDEBUGÚlistÚhandlersÚ
removeHandlerÚ
StreamHandlerÚsysÚstdoutÚINFOÚ setFormatterÚ
addHandlerÚRotatingFileHandlerÚinfo)Úlog_dirÚlog_fileÚfmtÚrootÚhandlerÚconsoleÚrotatingÚlogs rÚ_setup_loggingr<sEÜ”2—::—>> )¨VÓ5€GØ ‡MM˜€MÔ˜Õ'€Hä
×
Ò
Ø €Cô
2026-05-04 20:32:24 +12:00
× Ò Ó €D؇MM”'—-‘-Ô Ü˜Ÿ
ÖØ ×ј×#¤C§J¡JÓ/€GØ ×Ñ”W—\‘\Ô ×Ñ˜ÔØ‡OOä×Ñט9°!¸gð€Hð
×Ñ”g—m‘mÔ ×ј#ÔØ‡OOä
×
Ò
˜
'€C؇H
NÐPXÔ €JrÚDEV_MODEÚÚRESEND_API_KEYz(API key from https://resend.com/api-keysÚ OWNER_EMAILz2Email address that receives new lead notificationscó$V^8„dQhR\/#r
2026-05-04 20:32:24 +12:00
©Údict)rs"rrrEs÷7ñ7”dñ7rc$óŠ\'d—R\PPRR4R\PPRR4R\PPRR4R \PPR
R 4R R
RR
RRR^R^RRRRR^2R^2R^/#\P 4UUu.uF/wr\PPV4'dK,W3NK1 pppV'.R4OpVFwrVP
RV RV R24K V.R5O,
pVFwrVP
2026-05-04 20:32:24 +12:00
RV R24K VP
R
4RPV4p\PR VUUu.uFwrdVNK upp4\V\PR!7\P!^4R\PR,R\PR,R\PPRR4R \PPR
R 4R \PPR"R#4P4R\PPR$R
4P4R\PPR%R&4P4P4R69R\!^\#\PPR'R(444R\!^\#\PPR)R*444R\!^<\#\PPR+R,444R\!^<\#\PPR-R.444R\!^\#\PPR/R0444R\!^\#\PPR1R(444R\!^\#\PPR2R3444/#uuppiuuppi)7Úresend_api_keyr?ÚdevÚ owner_emailr@z
dev@localhostÚ
from_emailÚ
FROM_EMAILz"GoodWalk <bookings@goodwalk.co.nz>Úreply_toÚREPLY_TOzaless@goodwalk.co.nzÚ owner_bccr>Ú
client_bccÚenable_general_enquiriesFÚ max_attemptsÚform_min_secondsÚform_max_secondsi Úrate_limit_window_secondsi„Úrate_limit_max_per_ipÚrate_limit_max_per_emailÚrate_limit_min_interval_secondsu • z)z $env:z = "..."Ú
z%Startup aborted: missing env vars: %s)ÚfileÚ OWNER_BCCúexample@example.comÚ
CLIENT_BCCÚENABLE_GENERAL_ENQUIRIESÚfalseÚMAIL_MAX_ATTEMPTSÚFORM_MIN_SECONDSÚFORM_MAX_SECONDSÚ7200ÚRATE_LIMIT_WINDOW_SECONDSÚ900ÚRATE_LIMIT_MAX_PER_IPÚRATE_LIMIT_MAX_PER_EMAILÚRATE_LIMIT_MIN_INTERVAL_SECONDSÚ20)r>uEMail API cannot start — required environment variables are not set:r>)r>zASet them in your shell and try again. For example, in PowerShell:r>>ÚonÚyesÚtrueÚenabled)r=r!r"r#Ú REQUIRED_ENVÚitemsÚappendÚjoinÚloggerÚcriticalÚprintr-ÚstderrÚexitÚstripÚlowerÚmaxÚint)ÚnameÚhintÚmissingÚlinesÚmessageÚns rÚ _load_configr„EsB߃xà œbŸj™jŸn™nÐ-=¸ œ2Ÿ:™:Ÿ>™>¨-¸Ó œ"Ÿ*™*Ÿ.™.¨Ð7[Ó œŸ
Ÿ zÐ3IÓ ˜Ø ˜ Ø ˜  Ø  Ø Ø #  Ø -¨qð
ð
ô /;×.@Ñ.@Ô.BÔ_Ñ.B¡
 Ì"Ï*É*Ï.É.ÐY]×J^Œ||Ñ.B€GÑò
ˆó
"‰Jˆ L‰L˜6 $  s¨4¨&°Ð 
ò
õ
ˆó
‰Gˆ L‰L˜7 4 Ð à
Ø—)‘)˜EÓ"ˆÜÐ?ÑPWÔAXÑPWÉÈÃ!ÑPWÒAXÔ
ˆgœCŸJ™JÕ ŠŒ ð œ"Ÿ*™*Ð%5Õ”r—zz ”b—j‘j—n‘n \Ð3WÓ”B—JJ—NN :Ð/EÓ”R—ZZ—^^ KÐ1FÓG×”b—jj—nn \°2Ó6×"¤B§J¡J§N¡NÐ3MÈwÓ$W×$]Ñ$]Ó$_×$eÑ$eÓ$gðlQñ%QØœ˜Aœs¤2§:¡:§>¡>Ð2EÀsÓ#KÓœC ¤3¤r§z¡z§~¡~Ð6HÈ#Ó'NÓ#OÓœC ¤C¬¯
©
¯©Ð7IÈ6Ó(RÓ$SÓ#¤S¨¬S´·±·±Ð@[Ð]bÓ1cÓ-dÓ%eؤ ¬B¯J©J¯N©NÐ;RÐTWÓ,XÓ(YÓ!ZØ"¤C¨¬3¬r¯z©z¯~©~Ð>XÐZ]Ó/^Ó+_Ó$`Ø)¬3¨q´#´b·j±j·n±nÐEfÐhlÓ6mÓ2nÓ+oð ðùó-`ùó$BYsÂ:)P9Ã(P9Æ
P? Ú APP_VERSIONÚunknownÚAUTH_CODE_TTL_SECONDSÚ600éÚAUTH_SESSION_TTL_SECONDSÚAUTH_IP_MAX_FAILURESÚ10ÚAUTH_IP_FAILURE_WINDOWÚAUTH_IP_BLOCK_DURATIONÚ3600ÚDATA_DIRÚdatazallowed_emails.jsonzclient_profiles.jsonz drafts.jsonrErGrLrMrHrJrNrOrPrQrRrSrTrUzHhttps://www.goodwalk.co.nz/images/goodwalk-auckland-dog-walking-logo.pngzÖMail API config: version=%r timezone=%r from=%r reply_to=%r owner=%r owner_bcc=%r client_bcc=%r general_enquiries=%r max_attempts=%d form_min=%ss form_max=%ss rate_window=%ss per_ip=%d per_email=%d min_interval=%ssÚTZzsystem-defaultzGoodWalk Mail API)ÚtitlerZcó:V^8„dQhR\\,/#r
©ÚsetÚstr)rs"rrr´s÷ñœc¤#rcó*\PPRR4PR4Uu0uF8qP 4'gKVP 4P 4kK: pp\ P4'dS\P!\ PRR74pVPRVPR.444V#uupi \d"p\PRT4Rp?T#Rp?ii;i) ÚALLOWED_EMAILSr>Ú,r©r c3ór"TF-p\V\4'gKVP4xK/ R#5i©N)Ú
isinstancer—rz)Ú.0Úes& rÚ <genexpr>Ú'_load_allowed_emails.<locals>.<genexpr>¹s'éÐXÑ+A aÄZÐPQÔSV×EWœ ˜ŸŸ ˜ Ó+Aùs7Ÿ7Úemailsz&Could not load allowed_emails file: %sN)r!r"r#ÚsplitryrzÚ_ALLOWED_EMAILS_FILEÚexistsÚjsonÚloadsÚ read_textÚupdateÚ ExceptionrtÚwarning)r ÚseedrÚexcs rÚ_load_allowed_emailsr¯´Ü')§z¡z§~¡~Ð6FÈÓ'K×'QÑ'QÐRUÔ'VÓ dÑ'V !×ZaÑZa×ZcÔ ˆAG‰GIO‰OÖ Ñ'V€DÐ FÜ × &× —:2×<ÀgÐOˆ K‰KÑX¨4¯8©8°H¸bÔ+AÓ  €Kùò eøô
ôFÜÐ× €KûðFús$²C!Á"C!Á3A,C&Ã& DÃ1D
Ä
Dcó>V^8„dQhR\\,RR/#)rrNr•)rs"rrr¾s"÷AñA¤c¬#¥hðA°4ñArcó\PPRRR7\P\P
!R\
V4/^R7RR7R# \d"p\PRT4Rp?R#Rp?ii;i)Tr©Úindentrrz!Could not save allowed_emails: %sN)
Úparentr$Ú
write_textr§ÚdumpsÚsortedr«rt)s& rÚ_save_allowed_emails_syncr¸¾ssðAÜ×)°$ÀÐ× JŠJ˜¤&¨£.Ð1¸ <Àwð
øô ôAÜÐ:¸C×@ûðAúsAAÁ B Á(BÂB cóFV^8„dQhR\\\3,/#r
©rCr—)rs"rrrÈs÷ñœt¤C¬ Iñrcóð\P4'd+\P!\P RR74#/# \
d"p\ PRT4Rp?/#Rp?ii;i)rrz'Could not load client_profiles file: %sN)Ú_CLIENT_PROFILES_FILEr¦rt©s rÚ_load_client_profilesr¾ÈslðGÜ × '× —:3×=ÀwÐ   €Iøô ôGÜÐ@À#×
€IûðGúóA œ)A Á A5ÁA0Á0A5có(V^8„dQhR\RR/#)rÚprofilesrNrB)rs"rrrÑs÷BñB¬ðB°$ñBrcó\PPRRR7\P\P
!V^R7RR7R# \ d"p\PRT4Rp?R#Rp?ii;i)Trrrz"Could not save client_profiles: %sN) r¼r´r$rt)s& rÚ_save_client_profiles_syncrÃÑsdðBÜ×*°4À$Ðׯª°HÀQÔ)GÐRYÐZøÜ ôBÜÐ;¸S×AûðBúóAAÁ A>ÁA9Á9A>có$V^8„dQhR\/#r
rB)rs"rrrÙs÷ñ”dñrcóð\P4'd+\P!\P RR74#/# \
d"p\ PRT4Rp?/#Rp?ii;i)rrzCould not load drafts file: %sN)Ú _DRAFTS_FILEr¦rts rÚ _load_draftsrÈÙshð × Ñ × Ò Ü—:’:œl×4¸gÐ   €Iøô ôÐ×
€Iûð>úr¿có(V^8„dQhR\RR/#)rÚdraftsrNrB)rs"rrrâs÷9œdð9 9rcó\PPRRR7\P\P
!V^R7RR7R# \ d"p\PRT4Rp?R#Rp?ii;i)TrrrzCould not save drafts: %sN) rÇr´r$rt)s& rÚ_save_drafts_syncrÌâs`ð×Ñ×!¨$¸Ð×Ѥ§
¢
¨6¸!Ô <ÀwÐÖOøÜ ôÐ2°C×8ûð9úrÄz Auth: loaded %d allowed email(s)có(V^8„dQhR\RR/#)rÚemailrr—)rs"rrr÷s÷NñN¤ðN¨ñNrcƒó¾"VP4P4pV'gR#\;_uu_4GRjxL
V\9d\\P V4\
P !\\\44GRjxL
\PRV4RRR4GRjxL
R#L|L.L
+GRjxL
'giR#;i5i)Nz&Auth: registered new allowed email: %s) ryrzÚ
_auth_lockÚ_allowed_emailsÚaddÚasyncioÚ to_threadr¸rrtr3)Ú
normalizeds& rÚ_register_emailr×÷séØ×&€Jß ÙßzŽzØ œ_Ô × Ñ  
2026-05-04 20:32:24 +12:00
Ô ×#Ô$=¼sÄ?Ó?SÓT× K‰KÐ@À*Ô z
U÷zzzüs^;C½B:¾CÁA CÂ
B<ÂCÂ( CÂ3B>Â4CÂ<CÂ>CÃC ÃC Ã
C ÃC Ã Ccó4V^8„dQhR\R\RR/#)rÚprofilerN)r—rC)rs"rrrs&÷ Xñ X¤sð X´ X¸ Xrcƒó
"VP4P4pV'gR#\;_uu_4GRjxL
\P V/4p/VCVCP 4UUu/uFwrEV'gKWEbK pppWc8wd:V\V&\ P!\\\44GRjxL
RRR4GRjxL
2026-05-04 20:32:24 +12:00
R#LœuuppiLL +GRjxL
'giR#;i5ir)
ryrzÚ_client_profilesr#rqrC)ÚexistingÚmergeds&& rÚ_store_client_profileràs´éØ×&€Jß ÙßzŽzÜ#×
°BÓ7ˆØ#: hÐ#:°'Ð#:×#@Ñ#@Ô#BÔHÑ#B™4˜1Äa”$!$Ñ#BˆÑ Ô Ø+1Ô ˜ ×#Ô$>ÄÔEUÓ@VÓW× zzùã
X÷ zzzüso;D½C¾DÁ.C&Á/ C
ÂC
Â=C&ÃC"ÃC&Ã DÃC$ÃDÃC&Ã$DÃ&D Ã,C/Ã-
D Ã8D Ã: Dcó4V^8„dQhR\R\RR/#)rÚipÚ
request_idrNrÏ)rs"rrr
s!÷

!œ#ð
!¬3ð
!°4ñ
!rcó&\P!4p\PV4pVecW#8dT\ W2,
4p\
P
RWV4\RRV^<,^, R2R\V4/R7h\VR#R#)Nz([%s] auth: blocked ip=%s (%ds remaining)é­z'Too many failed attempts. Try again in z minute(s).z Retry-After)Ú status_codeÚdetailÚheaders) ÚtimeÚ monotonicÚ _blocked_ipsr#r|rtrr—)ÚnowÚ
unblock_atÚ remainings&& rÚ_check_ip_blockedrï
Ü
2026-05-04 20:32:24 +12:00
.Š.Ó
€CÜ×! %€JØÒØ Ô Ü˜JÕ-ˆIÜ N‰NÐEÀzÐW`Ô ØØÈbÅÐSTÕATÐ@UÐU`ШI«Ðð
2026-05-04 20:32:24 +12:00
ô ˜RÒ ñrcó@V^8„dQhR\R\R\RR/#)rÚreasonrNrÏ)rs"rrrs(÷ 
ñ 
œSð 
¬cð 
¼3ð 
À4ñ 
rc óÒ\P!4p\PV\ 44pV'd+W4^,,
\
8”dVP
4K2VPV4\PRWV\V44\V4\d<V\,\V&\PRW\\V44R#R#)rz5[%s] auth: failure ip=%s reason=%r total_in_window=%dz2[%s] auth: ip=%s BLOCKED for %ds after %d failuresN)Ú_auth_failures_by_ipÚ
2026-05-04 20:32:24 +12:00
setdefaultrrÚpopleftrrrtÚlenr)Úfailuress&&& rÚ_record_auth_failurerøÜ
.Š.Ó
€CÜ.¨r´5³7Ó;€Hß
s a(Ô+AÔ×ÑÖØ ‡OOÜ
‡NJÈJÐ\bÔdgÐhpÓdqÔ
ˆ8ƒ}ÔÔ!7Õ ÜØ Ô2´C¸³Mö
2026-05-04 20:32:24 +12:00
ñ-rÚPOSTÚGET)Ú
allow_originsÚ
allow_methodsÚ
allow_headersÚhttpcó$V^8„dQhR\/#©rÚrequest©r)rs"rrr5s÷ñ¬wñrcƒó€"\P!4PR,pW Pn\
2026-05-04 20:32:24 +12:00
P !4pV!V4GRjxL
p\
P !4T,
R,p\PRY PTPPTPT4Y$PR&T#Lx \d\\
P !4T,
2026-05-04 20:32:24 +12:00
R,p\PRY PTPPT4hi;i5i)ºNéNNéèz[%s] %s %s crashed after %.0fmsu[%s] %s %s → %d (%.0fms)z X-Request-ID)ÚuuidÚuuid4ÚhexÚstaterãrtÚ exceptionÚmethodÚurlÚpathr3)rÚ call_nextrãÚstartedÚresponseÚ
elapsed_mss&& rÚ_request_logging_middlewarer4éä×! "Õ%€JØ)‡MÜnŠnÓ€GðÙ" +×+ˆô—." Õ4€JÜ
‡K—NN G§K¡K×$4Ñ$4°h×6JÑ6JÈJôð(2×Ñ €Oñ,øÜ ôÜ—n’nÓÕ0°DÕ8ˆ
Ü×ÑØ Ÿ¨¯ © ×(8Ñ(8¸*ô
ð ð
üs2A D>Á CÁCÁCÁA4D>ÃCÃA&D;Ä;D>cóLa]tRtRtoRtRtRtRtRtRt Rt
Rt V3Rlt Rt
VtR#)ÚBaseSubmissioniKr>Ncóä<V^8„dQh/S[;R&S[;R&S[;R&S[;R&S[R,;R&S[R,;R&S[R,;R&S[R,;R &S[R,;R
&S[;R &S[;R &#)
rÚfullNamerÎÚphoneÚwebsiteNÚ
formStartedAtÚvisitStartedAtÚ
pageEnteredAtÚfirstInteractionAtÚ
sendClickedAtÚreferrerÚpage)r—r r|)rÚ
__classdict__s"€rrÚBaseSubmission.__annotate__Ks ø‡Ùá ñ ñÑñ ñ
˜•:Ñ ñ ˜$•JÑ
ñ˜•:Ññ˜d
2026-05-04 20:32:24 +12:00
Ññ˜•:ÑñÑññ r©)Ú__name__Ú
__module__Ú __qualname__Ú__firstlineno__rrrrrrr r!Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r"s@rrrKs7ø‡ð€GØ $€MØ!%€NØ $€MØ%)ÐØ $€MØ€HØ€D÷ƒrrcóHa]tRtRtoRtRtRtRt.t^t .t
V3Rlt Rt Vt
R#)ÚBookingSubmissioniYÚbookingr>cóŽ<V^8„dQh/S[;R&S[;R&S[;R&S[;R&S[S[,;R&S[;R&S[S[,;R&#)rÚ enquiryTypeÚpetNameÚlocationrÚservicesÚ stepChangesÚjourney)r—r)r|)rr"s"€rrÚBookingSubmission.__annotate__Ysdø‡ÙÑ ñá
ÑññÑññÑñ ñ
‘3ñ ñ Ññ
ñ#òrr$N)r%r&r'r(r1r2r3rr4r5r6r)r*r+r,s@rr.r.Ys/ø‡Ø €KØ€GØ€HØ€GØ€HØ€KØ€G÷ƒrr.cóPa]tRtRtoRt.tRtRtRtRt Rt
Rt Rt V3Rlt
RtVtR#)ÚOnboardingSubmissionicr>Fcóö<V^8„dQh/S[;R&S[;R&S[;R&S[;R&S[S[,;R&S[;R&S[;R&S[;R&S[;R &S[;R
&S[;R &S[;R &S[;R
2026-05-04 20:32:24 +12:00
&S[;R&S[;R&S[;R&S[;R&#)rÚaddressÚdogNameÚdogBreedÚdogAgeÚservicesNeededÚ temperamentÚ medicalNotesÚaccessInstructionsÚvetNameÚvetPhoneÚemergencyContactNameÚemergencyContactPhoneÚcouncilRegistrationConfirmedÚvaccinationsConfirmedÚemergencyVetConsentÚ
termsAcceptedÚsignatureDataUrl)r—r)Úbool)rr"s"€rrÚ!OnboardingSubmission.__annotate__cø‡Ù
á
ññ
Ññ ñ
•IÑ ñ Ññ
ñÑññÑ ññññÑññÑññ#'Ññ ÑñÑñ Ññ!ñ"Ñò#rr$N)r%r&r'r(r>r?r@rArBrGrHrIrJr)r*r+r,s@rr9r9csAø‡ð€FØ "€NØ€KØ€LØ Ðð
*/Ð Ø"'ÐØ %ÐØ€M÷!ƒrr9cóPa]tRtRtoRtRtRtRtRtRt Rt
Rt Rt V3Rlt
RtVtR#)ÚContractSubmissioniwr>FcóÎ<V^8„dQh/S[;R&S[;R&S[;R&S[;R&S[;R&S[;R&S[;R&S[;R&S[;R &S[;R
&S[;R &S[;R &S[;R
&S[;R&S[;R&#)rr;r<r=r>Ú serviceTypeÚ startDateÚ
walkFrequencyÚadditionalNotesÚagreeServiceTermsÚagreeCancellationÚ agreePaymentÚagreeEmergencyÚagreeLiabilityÚ
agreeAccuracyrK)r—rL)rr"s"€rrÚContractSubmission.__annotate__wø‡Ù
á
ññ
Ññ ñ
Ññ ñ 
ñÑññÑññÑñÑñÑññÑ ññÑ ññÑññÑòrr$N)r%r&r'r(r>rSrTrUrVrWrXrYrZr)r*r+r,s@rrOrOws?ø‡ð€Fð€MØ€OØØØ€LØ €NØ €NØ€M÷ƒrrOcó0V^8„dQhR\R\/#)rrr)rr—)rs"rrrs÷@ñ@”Wð@¤ñ@rcóèVPPR4pV'd'VPR4^,P4#VP'dVPP
#R#)zx-forwarded-forršr†)r#ryÚclientÚhost)rÚ forwardeds& rÚ_get_iprasTØ×#Ð$5Ó6€Iߨ˜# &×.Ø")§.§. .ˆ7>‰>× Ñ Ð?°iÐ?rcó0V^8„dQhR\R\/#)rÚvaluer)rs"rrrs÷ñ”CðœCñrcó"VP4#r)ry)rcs&rÚ_trimmedresØ ;‰;‹=ÐrcóVV^8„dQhR\\,R\R\RR/#)rÚattemptsrìÚwindow_secondsrN)rÚfloatr|)rs"rrrs-÷ñœe¤E´ðÌðÐPTñrcófV'd)W^,,
V8”dVP4K.R#R#)rN))rgrhs&&&rÚ_prune_attemptsrks&ß
2026-05-04 20:32:24 +12:00
s a(¨>Ô×ÑÖñ:‰(rcóHV^8„dQhR\R\R\R\/#)rÚlast_attempt_atrìÚmin_interval_secondsr)rir|)rs"rrr s*÷ñ¬Eð¼ðÔUXðÔ]`ñrcóJ\^\W!V,
,
44pV#)é)r{r|)rmrnÚ retry_afters&&& rÚ_seconds_until_allowedrr s"ÜÐ1¸?Õ5JÕM€KØ Ðrcó@V^8„dQhR\R\R\RR/#)rrNrÏ)rs"rrr¥s(÷44#´4#¼3ð4#Äsð4#Ètñ4#rc
ƒóð"\P!4pVP4P4p\;_uu_4GRjxL
\
P
2026-05-04 20:32:24 +12:00
V\44p\P
V\44p\WS\4\Wc\4V'dlW5R
,,
\8dT\VR
,V\4p\PRVVW5R
,,
\4\RRV R2R7h\!V4\"d/\PRVV\"\4\RRR7h\!V4\$d/\PRVV\$\4\RR R7hVP'V4VP'V4RRR4GRjxL
R#EL +GRjxL
'giR#;i5i) NzB[%s] rate limited: ip=%s submitted again after %.1fs (minimum %ss)råzPlease wait about z seconds before trying again.©z7[%s] rate limited: ip=%s exceeded %d submissions in %sszIToo many enquiries from this connection. Please try again a little later.z:[%s] rate limited: email=%s exceeded %d submissions in %sszQThat email address has reached the enquiry limit for now. Please try again later.éÿÿÿÿ)ryrzÚ_submit_rate_limit_lockÚ_submit_attempts_by_iprôrÚ_submit_attempts_by_emailrkrdrirrrtrrfrhrr)Únormalized_emailÚ ip_attemptsÚemail_attemptsrqs&&& rÚ_enforce_submit_rate_limitsr}¥éÜ
2026-05-04 20:32:24 +12:00
.Š.Ó
€CØ—{‘{“}×ç&×,×7¸¼E»GÓDˆ Ü2×=Ð>NÔPUÓPWÓXˆä˜ Ô*CÔ˜Ô-FÔ ˜3¨R¥Õ0Ô3RÔ¸RµÀ#ÔGfÓgˆKÜ N‰NØØØ "•oÕ 
ô ØØ+¨K¨=Ð8UÐð
ô
ˆ{Ó Ô N‰NØØÜ 
ô ØØð
ô
ˆ Ô":Ô N‰NØØ Ü 
ô ØØð
ð
×ј3ÔØ×ј"÷a'×&×&×&×&×&üsOAG6ÁGÁ G6Á E6GÇ G6Ç
2026-05-04 20:32:24 +12:00
GÇG6ÇG6ÇG3 ÇG"Ç
G3 Ç+G3 Ç- G6có4V^8„dQhR\R\RR/#©rrrN)r—r)rs"rrrÜs!÷ 
ñ 
¤Sð 
´ð 
À4ñ 
rcóÂVPeVP^8:d$\PRV4\RRR7h\P!4R,VP,
R, pV\
8d*\PRVV\
4\RRR7hV\ 8”d*\PRVV\ 4\RR R7hR#)
Nz/[%s] rejected: missing or invalid formStartedAtéz&Please refresh the page and try again.rurz7[%s] rejected: form submitted too quickly (%.2fs < %ss)z;Please take a moment to fill in the form before sending it.z2[%s] rejected: stale form submission (%.0fs > %ss)zLThis form has been open for too long. Please refresh the page and try again.)rrtrr`rb)rÚelapsed_secondss&& rÚ_enforce_form_timingrƒÜØ ×ÑÒ! T×%7Ñ%7¸1Ô%<ÜÐHÈ*ÔØØ
2026-05-04 20:32:24 +12:00
ð
ô
—yy“{ )¨D×,>Ñ,>Õ>À$ÕF€OàÔØ Ø Ü ô 
ô ØØ
ð
ð
ÔØ Ø Ü ô 
ô ØØ
ð
ñ*rcó0V^8„dQhR\R\/#©rrr)rrL)rs"rrrÿs÷ð(´Dñ(rcó>\\VP44#r)rLrer©rs&rÚ_is_honeypot_triggeredrˆÿsÜ ˜ŸÓ 'rcó0V^8„dQhR\R\/#r…)r.rL)rs"rrrs÷;´;rcóN\VP4P4R8H#)Úgeneral)rer1rzr‡s&rÚ_is_general_enquiryrŒs!Ü  Ñ :rcó0V^8„dQhR\R\/#r…©r.r—)rs"rrrs÷QñQÔQ´Qrcó,\V4'dR#R#)zGeneral enquiryzBooking enquiry)r‡s&rÚ_enquiry_type_labelrsÜ 3°D× 9Ò 9Ð ÐPÐ?PÐPrcó4V^8„dQhR\R\RR/#r)r—r.)rs"rrr s"÷3
ñ3
¤Sð3
Ô0Að3
Àdñ3
rcó¤\VP4P4pVR9d.\P RWP4\ RRR7h\VP 4'g$\P RV4\ RRR7h\VP4'g$\P RV4\ RRR7h\V4'dp\'g$\P R V4\ R
R R7h\VP4'g$\P R V4\ RR
R7hR#\VP4'g$\P RV4\ RRR7h\VP4'g$\P RV4\ RRR7hR#)r/z%[%s] rejected: invalid enquiryType=%rrz1Please choose a valid enquiry type and try again.ruz [%s] rejected: missing full nameúPlease enter your full name.z#[%s] rejected: missing phone numberz!Please enter your contact number.z-[%s] rejected: general enquiries are disabledé“z>General enquiries are currently unavailable through this form.z.[%s] rejected: missing general enquiry messagezPlease tell us how we can help.Nz[%s] rejected: missing pet nameúPlease enter your dog's name.z[%s] rejected: missing locationzPlease enter your location.>r/r)
rer1rzrtrrrr\rr2r3)rÚ enquiry_types&& rÚ_validate_submissionr— sˆÜ˜D×5€LàÐÐ
2026-05-04 20:32:24 +12:00
×L\ÑL\ÔØØ
ð
ô
D—MM× Ð9¸ØØ
ð
ô
D—J‘J× Ò ÜÐ<¸jÔØØ
ð
ô
˜4× Ò ß N‰NÐJÈJÔ ØØð
ô˜Ÿ × N‰NÐKÈZÔ ØØð
ñ ä D—L‘L× Ð8¸*ÔØØ
ð
ô
D—MM× Ð8¸ØØ
ð
ñ #rcó(V^8„dQhR\RR/#©rrrr.)rs"rrrAs÷ñÔ 1ð°dñrcóœ\V4'dRMRVn\VP4Vn\VP4Vn\VP
4Vn\VP 4Vn\VP4Vn\VP4Vn\VP4Vn VPUu.uF!p\V4'gK\V4NK# upVn
VPUu.uF!p\V4'gK\V4NK# upR,Vn \^VP4Vn
RF'p\W4pVe
V^8:gK\WR4K) \V4'dRVnRVn.Vn
R#R#uupiuupi)rr/:Né NNr>©rrrr)r1rerrr2r3rr r!r4r6r{r5ÚgetattrÚsetattr)rÚserviceÚstepÚ
field_namercs& rÚ_normalize_submissionr£AsJÜ$7¸×$=Ò$=‘yÀ9€DÔܘTŸ]™]Ó+€D„Mܘ$Ÿ*™*Ó%€D„JܘDŸL™LÓ)€D„LܘTŸ]™]Ó+€D„MܘDŸL™LÓ)€D„LܘTŸ]™]Ó+€D„MܘŸÓ#€D„IØ6:·m²mÓY±m¨7ÄxÐPW×GXÔ&”X˜&±mÑY€D„MØ/3¯|ª|ÓN©| t¼xÈ¿~”N”H˜T–N©|ÑNÈsÕS€D„Lܘ1˜d×/€DÔã
Ü˜ÓØ Š=˜E QžJÜ D  aô
˜4× Ò ØˆŒ ؈Œ
؈Ž
2026-05-04 20:32:24 +12:00
ñ!ùòZùÚNsÃGÃ7GÄG Ä4G có4V^8„dQhR\R\RR/#r)r—r9)rs"rrrYs(÷+añ+a´ð+aÔ;Oð+aÐTXñ+arcóê\VP4'g$\PRV4\ RRR7h\VP
4'g$\PRV4\ RRR7hRRRR R
R R R
RRRRRR/pVP
4FBwr4\\W44'dK!\PRW4\ RVR7h VP'g$\PRV4\ RRR7hVP'g\ RRR7hVP'g\ RRR7hVP'g\ RRR7hVP'g\ RRR7h\VP4pVPR4'd\V4^€8d$\PRV4\ RRR7hR#)z+[%s] onboarding rejected: missing full namerr“ruz'[%s] onboarding rejected: missing phoneúPlease enter your phone number.r;úPlease enter your address.r<r•r=úPlease enter your dog's breed.rCz"Please enter your vet clinic name.rDz#Please enter your vet phone number.rEz'Please enter an emergency contact name.rFz/Please enter an emergency contact phone number.z$[%s] onboarding rejected: missing %sz*[%s] onboarding rejected: missing servicesz#Please choose at least one service.z$Please confirm council registration.z(Please confirm vaccinations are current.z,Please confirm emergency veterinary consent.z*Please confirm the onboarding declaration.údata:image/png;base64,z3[%s] onboarding rejected: invalid signature payloadú)Please add your signature before sending.N)rerrtrrrqr?rGrHrIrJrKÚ
startswithrö)rÚrequired_fieldsr¢rÚ signatures&& rÚ_validate_onboarding_submissionr®Ys´Ü D—MM× ÐDÀjÔ¨Ð4RÔ D—J‘J× Ò ÜÐ@À*Ô¨Ð4UÔ ÐÐÐÐÐÐ IØÐ!Rð€Oðˆ
Üœ Ó N‰NÐAÀ:Ô ¨C¸Ô 
× × Ð ÜÐCÀZÔ¨Ð4YÔ × ¨Ð4ZÔ × ¨Ð4^Ô × ¨Ð4bÔ × × Ð Ü¨Ð4`Ô˜×/€IØ × Ñ Ð 8× 9¼SÀ»^ÈcÔ=QÜÐLÈjÔ¨Ð4_Ô>Rrcó(V^8„dQhR\RR/#r™)r9)rs"rrrs÷,Ô+?ð,ÀDñ,rcóþ\VP4Vn\VP4Vn\VP4Vn\VP4Vn\VP
4Vn\VP 4Vn\VP4Vn\VP4Vn\VP4Vn \VP4Vn
\VP4Vn \VP4Vn \VP4Vn
\VP4Vn\VP4VnVP Uu.uF!p\V4'gK\V4NK# upR,VnRF'p\#W4pVe
V^8:gK\%WR4K) R#uupi)rNr)rerrr;r<r=r>r@rArBrCrDrErFr r!r?)rr rcs& rÚ _normalize_onboarding_submissionr±sgܘTŸ]™]Ó+€D„Mܘ$Ÿ*™*Ó%€D„JܘDŸL™LÓ)€D„LܘDŸL™LÓ)€D„LܘTŸ]™]Ó+€D„Mܘ4Ÿ;™;Ó'€D„KÜ × 0Ñ 0Ó1€DÔÜ  ×!2Ñ!2Ó3€DÔÜ& t×'>Ñ'>Ó?€DÔܘDŸL™LÓ)€D„LܘTŸ]™]Ó+€D„MÜ (¨×)BÑ)BÓ C€DÔÜ!)¨$×*DÑ*DÓ!E€DÔܘTŸ]™]Ó+€D„MܘŸÓ#€D„IØ<@×<OÒ<OÓeÑ<O°ÔS[Ð\c×SdÔ,œ8 ,Ñ<OÑeÐfhÕi€DÔã`ˆ
Ü˜ÓØ Š=˜E QžJÜ D  aùòfs ÆG:Æ-G:có0V^8„dQhR\R\/#)rÚuar)rs"rrrŸs÷

$”#ð
$œ#ñ
$rcóŽaS'gR#.ROp.ROp\V3RlV4R4p\V3RlV4R4pV RV 2#)ÚUnknownc3ó><"TFwrVS9gKVxK R#5irr$©Úprƒs& €rÚ_parse_ua.<locals>.<genexpr>§søéÐ6¡(™$˜!¨a°2©g—A’A£(ùóƒ 
zUnknown browserc3ó><"TFwrVS9gKVxK R#5irr$s& €r¨søéИ¨A°©G—1’1£ùrºz
Unknown OSz on ))zEdg/ÚEdge)zOPR/ÚOpera)zChrome/ÚChrome)zFirefox/ÚFirefox)zSafari/ÚSafari))z
Windows NT 10z
Windows 10/11)z Windows NT 6z Windows 8)zMac OS XÚmacOS)ÚiPhonerÂ)ÚiPadrÃ)ÚAndroidrÄ)ÚLinuxrÅ)Únext)ÚbrowsersÚsystemsÚbrowserÚsystemsf rÚ _parse_uarËŸsPø€ß
Ùò@€Hò;€GôÔ6¡(Ó6Ð8IÓJ€GÜ
ÔÓ4°lÓ
C€F؈Yd˜6˜ #rcó<V^8„dQhR\R\R\/#©rÚlabelrcr)rs"rrr¬s!÷ 
ñ 
”sð 
¤3ð 
¬3ñ 
rcó(V'gR#RV RV R2#)r>
<tr>
<td style="padding:8px 0;color:#888;font-size:13px;white-space:nowrap;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;width:130px;">z×</td>
<td style="padding:8px 0 8px 16px;color:#213021;font-size:14px;font-weight:500;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;">ú</td>
</tr>r$©rcs&&rÚ _detail_rowrÒ¬s/ß Ùð49°'ð:'ð(- .
ð
ð
rcó<V^8„dQhR\R\R\/#)rs"rrrºs!÷ 
ñ 
”Sð 
¤ð 
– 
rcó(V'gR#RV RV R2#)r>
<tr>
<td style="padding:5px 0;color:#aaa;font-size:12px;white-space:nowrap;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;width:100px;">zÙ</td>
2026-05-04 20:32:24 +12:00
<td style="padding:5px 0 5px 16px;color:#666;font-size:12px;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
2026-05-04 20:32:24 +12:00
vertical-align:top;word-break:break-all;">rÐr$s&&rÚ _meta_rowrÕºs1ß Ùð49°'ð:<ð=B¸C
ð
ð
2026-05-04 20:32:24 +12:00
rcó>V^8„dQhR\R,R\/#)rÚ duration_msNr©r|r—)rs"rrrÈs÷ ñ ¤S¨4¥Zð ´Cñ rcóÐVeV^8dR#\\VR, 44p\V^<4wr#\V^<4wrBV^8”d V RV R2#V^8”d V RV R2#V R2#)Nr>rzh Úmzm Ús)r|ÚroundÚdivmod)r×Ú
total_secondsÚminutesÚsecondsÚhourss& rÚ_format_duration_msrâÈsØÒ˜k¨AœoÙ䜘k¨DÕ2€Mܘm¨RÓ€GܘG RÓ(N€Eà ˆq„yؘ˜7˜) 1Є{ؘ"˜W˜I ˆYaˆrcóXV^8„dQhR\R,R\R,R\/#)rÚstart_msNÚend_msr)rs"rrr×s)÷ 
ð2´C¸$µJð2Ä3ñ2rcóDVe VeW8dR#\W,
2026-05-04 20:32:24 +12:00
4#)Nr>))s&&rÚ_duration_betweenrç×s"ØÒ˜6š>¨VÔ->ÙÜ ˜ 1rcóFV^8„dQhR\\,R\/#)rr6r)r)r—)rs"rrrÝs÷ ñ œ4¤ ¬ñ rcó8V'gR#RPV4#)r>z -> )rs)r6s&rÚ
_journey_textrêÝsß ÙØ ;‰; Ðrcó<V^8„dQhR\R\R\/#)rÚ
badge_htmlÚsubtitler)rs"rrrås!÷
ñ
œSð
´ð
¼cñ
rcóbV'dRV R2MRpV'dRV R2MRpR\ RV RV R2#)z<div style="margin-top:20px;">z</div>r>z¿<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:13px;color:#7aaa7a;letter-spacing:0.04em;margin-top:8px;">
zx
2026-05-04 20:32:24 +12:00
<tr>
<td style="background:#213021;padding:36px 48px 32px;text-align:center;">
<img src="zŠ" width="161" height="32" alt="GoodWalk"
style="display:inline-block;max-width:161px;height:auto;border:0;">
z
z
</td>
</tr>)ÚLOGO_URL)ÚbadgeÚsubs&& rÚ _logo_headerròåscßCMÐ,¨Z¨L¸Ñ ?ÐSU€E÷(0ðà
˜ $à57ððô !
à
2026-05-04 20:32:24 +12:00
ˆ
Ø
ˆð
 ðrcó0V^8„dQhR\R\/#r…)rs"rrrõs÷F ñF ÔF ¬SñF rc ó\V4pVP'dRPVP4MRp\RVP4\R\ VP 44\RVP4\R\V44.pV'd?VP'd&VP\RVP44RpRpR pMŸVP\R
VP4\R VP4\R V4.4VP'd&VP\R
VP44RVP R2pRVP R2pRpR\VR7 RVPP4^, RV RRPV4 RV R2 #)ú, z
Not specifiedz Your nameÚEmailÚPhoneÚTypeÚMessagezBWe&rsquo;ve received your message and we will be in touch shortly.z<We will review your message and reply within 1 business day.z)General enquiries and dog walking supportzDog&rsquo;s nameÚLocationÚServicesú
About the dogz•We&rsquo;ve received your enquiry and we will be in touch shortly to arrange a <strong style="color:#213021;">Meet &amp; Greet</strong> with you and Ú.zWe will review your details and reach out within 1 business day to schedule a free Meet &amp; Greet. No commitment required &mdash; just a chance for z to make a new best friend.z!Professional dog walking servicesav<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>We received your enquiry</title>
</head>
<body style="margin:0;padding:0;background:#f2f2f0;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"
style="background:#f2f2f0;padding:40px 16px;">
<tr><td align="center">
<table width="600" cellpadding="0" cellspacing="0" role="presentation"
style="max-width:600px;width:100%;border-radius:16px;overflow:hidden;
box-shadow:0 4px 24px rgba(0,0,0,0.08);">
)a?
<!-- Body -->
<tr>
<td style="background:#ffffff;padding:48px 48px 40px;">
<h1 style="margin:0 0 8px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:26px;font-weight:700;color:#213021;line-height:1.2;">
Thanks, zÚ! &#x1F43E;
</h1>
<p style="margin:0 0 32px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:16px;color:#555;line-height:1.65;">

</p>
<!-- Details card -->
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"
style="background:#f8f7f4;border-radius:12px;margin-bottom:36px;">
<tr>
<td style="padding:28px 32px;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.1em;
color:#888;text-transform:uppercase;margin-bottom:20px;">
Your enquiry summary
</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
r>a*
</table>
</td>
</tr>
</table>
<!-- What's next -->
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"
style="border-left:3px solid #FFD100;margin-bottom:36px;">
<tr>
<td style="padding:4px 0 4px 20px;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:13px;font-weight:700;color:#213021;margin-bottom:6px;">
What happens next?
</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;color:#666;line-height:1.6;">

</div>
</td>
</tr>
</table>
<p style="margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;color:#888;line-height:1.6;">
Questions? Just reply to this email or reach us at 022 642 1011.
</p>
</td>
</tr>
2026-05-04 20:32:24 +12:00
<!-- Footer -->
2026-05-04 20:32:24 +12:00
<tr>
<td style="background:#213021;padding:24px 48px;text-align:center;">
2026-05-04 20:32:24 +12:00
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:12px;color:#5a8a5a;line-height:1.6;">
GoodWalk &middot; Auckland, New Zealand<br>
<a href="https://www.goodwalk.co.nz" style="color:#7aaa7a;text-decoration:none;">
2026-05-04 20:32:24 +12:00
goodwalk.co.nz
</a>
2026-05-04 20:32:24 +12:00
</div>
</td>
2026-05-04 20:32:24 +12:00
</tr>
</table>
</td></tr>
2026-05-04 20:32:24 +12:00
</table>
</body>
2026-05-04 20:32:24 +12:00
</html>)r4rsrr—rrrrrÚextendr2r3)rÚ
is_generalÚ
services_textÚenquiry_summary_rowsÚ
2026-05-04 20:32:24 +12:00
intro_htmlÚnext_steps_htmlÚ
logo_subtitles& rÚ client_emailrõs¿Ü$ *€JØ04·
·
°
D—II˜dŸm™mÔ,À?€Mä§¡ÓGœS §¡›_ÓG˜TŸZ™ZÓÓÐ÷Ø <<ˆ × °I¸t¿|¹|Ó(LÔ  ð
Kð ðD
à×з ± Ó˜J¨¯
©
2026-05-04 20:32:24 +12:00
Ó˜
Ó
ô
ð <<ˆ × °OÀTÇ\Á\Ó(RÔ 
Yà|‰|ˆn˜
ð ð 
àŸ,™,˜Ð'Bð
Dð ð
<ˆ
ð ô"
2026-05-04 20:32:24 +12:00
˜}Ô -Ð/ð—}‘}×,¨QÕ1ðˆlðð—W‘WÐ4ð" &ðy\ ð\ rcóHV^8„dQhR\R\R\R\/#©rrr)rs"rrr~s/÷w ñw Ôw ¬Sðw ¼3ðw Ä3ñw rcóÌ\V4pVP'dRPVP4MRp\P!4pVP R4P
R4pVPP4'd"VPP4^,MRpV'dRMRpV'dRMRp VP'dR V R
VP R 2MR p
R
PVR7p VP'd\RVP4M \RR4p VP'd\RVP4MR p
\R\VP VP"44p\R\VP$VP"44p\R\VP&VP"44p\R\VP(VP"44pVP*'d \R\-VP*44MR p\R\/VP044pV'dRMRp\3R\5V44.pV'dpVP6'd&VP9\3RVP644VP:'d&VP9\3RVP:44MFVP=\3RVP64\3RVP:4\3RV4.4R P.RNV NRN\?V R 7 NR!NV NR"NVP@ NR#NVP@ NR$NVP NR%NVP@ NR&NVP@ NR'NVPB NR&NVPB NR(NV NR)NR PV4 NR*NV
NR+NVP@ NR,NV NR-NVPB NR.NVPB NR/N\R0V4 NR*N\R1V4 NR*NV NR*NV NR*NV NR*NV NR*NV NR*NV NR*NV
NR*NV NR2N4#)3rõõ—ú%d %b %Y at %I:%M %pÚthemzNew GoodWalk EnquiryzNew GoodWalk Leadrùa)
<tr>
<td colspan="2" style="padding:16px 0 0;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.08em;color:#888;
text-transform:uppercase;margin-bottom:8px;">zë</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;color:#444;line-height:1.6;background:#f0efe9;
border-radius:8px;padding:14px 16px;">z</div>
</td>
</tr>r>ar<div style="display:inline-block;background:#FFD100;border-radius:100px;
padding:10px 28px;">
<span style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:18px;font-weight:700;color:#213021;">
&#x1F4E9;&nbsp; New enquiry!
</span>
</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:12px;color:#5a8a5a;margin-top:12px;">
Submitted {submitted_at}
</div>)Ú submitted_atú Came fromúDirect / bookmarkÚPageú Time on siteú Time on pageúActive form timeúForm open timez Step changesÚJourneyzEnquiry detailszDog &amp; servicesrøÚDogrúzú<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="color-scheme" content="light only">
<meta name="supported-color-schemes" content="light">
<title>a</title>
<style>
:root {
color-scheme: light only;
supported-color-schemes: light;
}
body,
table,
td,
div,
p,
span,
a {
forced-color-adjust: none !important;
-webkit-text-size-adjust: 100%;
}
.gw-owner-body {
background: #f2f2f0 !important;
color: #213021 !important;
}
.gw-owner-shell {
background: #ffffff !important;
}
2026-05-04 20:32:24 +12:00
.gw-owner-dark-panel {
background: #213021 !important;
}
.gw-owner-email-chip {
display: inline-block;
background: #ffffff !important;
color: #213021 !important;
border-radius: 10px;
padding: 12px 14px;
border: 1px solid #d9dfd9;
text-decoration: none !important;
}
.gw-owner-email-chip,
.gw-owner-email-chip a,
a.gw-owner-email-chip {
color: #213021 !important;
}
@media (prefers-color-scheme: dark) {
html,
body,
.gw-owner-body {
background: #f2f2f0 !important;
color: #213021 !important;
}
.gw-owner-shell,
.gw-owner-shell td {
background: #ffffff !important;
color: #213021 !important;
}
.gw-owner-dark-panel,
.gw-owner-dark-panel td {
background: #213021 !important;
}
2026-05-04 20:32:24 +12:00
.gw-owner-email-chip,
.gw-owner-email-chip a,
a.gw-owner-email-chip {
background: #ffffff !important;
color: #213021 !important;
}
}
</style>
</head>
<body class="gw-owner-body" style="margin:0;padding:0;background:#f2f2f0;color:#213021;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" bgcolor="#f2f2f0"
style="background:#f2f2f0;padding:40px 16px;">
<tr><td align="center">
<table class="gw-owner-shell" width="600" cellpadding="0" cellspacing="0" role="presentation" bgcolor="#ffffff"
style="max-width:600px;width:100%;border-radius:16px;overflow:hidden;
box-shadow:0 4px 24px rgba(0,0,0,0.08);background:#ffffff;">
)a
<!-- Body -->
<tr>
<td bgcolor="#ffffff" style="background:#ffffff;padding:40px 48px 36px;color:#213021;">
2026-05-04 20:32:24 +12:00
<!-- Quick contact -->
<table class="gw-owner-dark-panel" width="100%" cellpadding="0" cellspacing="0" role="presentation" bgcolor="#213021"
style="background:#213021;border-radius:12px;margin-bottom:28px;">
<tr>
<td bgcolor="#213021" style="padding:22px 24px;background:#213021;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.1em;color:#7aaa7a;
text-transform:uppercase;margin-bottom:10px;">
Quick contact
</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;color:#d8e6d8;line-height:1.6;margin-bottom:10px;">
Email z| directly:
</div>
<div style="margin-bottom:12px;">
<a href="mailto:aß" class="gw-owner-email-chip"
style="display:inline-block;background:#ffffff;color:#213021 !important;
font-family:Menlo,Consolas,'SFMono-Regular',monospace;
font-size:20px;font-weight:700;line-height:1.4;word-break:break-all;
border-radius:10px;padding:12px 14px;border:1px solid #d9dfd9;
text-decoration:none;">
a 
</a>
</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:12px;color:#b7cbb7;line-height:1.6;">
Tap and hold the address to copy on iPhone, or tap below to open a new email.
</div>
</td>
</tr>
</table>
<!-- Owner details -->
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.1em;color:#888;
text-transform:uppercase;margin-bottom:16px;">Owner details</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"
style="background:#f8f7f4;border-radius:12px;margin-bottom:28px;">
<tr><td style="padding:24px 28px;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
<tr>
<td style="padding:6px 0;font-size:13px;color:#888;width:80px;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;">Name</td>
<td style="padding:6px 0 6px 16px;font-size:15px;font-weight:600;
color:#213021;font-family:-apple-system,BlinkMacSystemFont,
'Segoe UI',sans-serif;vertical-align:top;">a#</td>
</tr>
<tr>
<td style="padding:6px 0;font-size:13px;color:#888;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;">Email</td>
<td style="padding:6px 0 6px 16px;font-size:14px;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;">
<a href="mailto:zX" style="color:#213021;font-weight:500;
text-decoration:none;">a9</a>
</td>
</tr>
<tr>
<td style="padding:6px 0;font-size:13px;color:#888;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;">Phone</td>
<td style="padding:6px 0 6px 16px;font-size:14px;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
vertical-align:top;">
<a href="tel:a¤</a>
</td>
</tr>
</table>
</td></tr>
</table>
<!-- Dog & service details -->
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.1em;color:#888;
text-transform:uppercase;margin-bottom:16px;">aO</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"
style="background:#f8f7f4;border-radius:12px;margin-bottom:28px;">
<tr><td style="padding:24px 28px;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
ú
a4
</table>
</td></tr>
</table>
<!-- CTA buttons -->
<table cellpadding="0" cellspacing="0" role="presentation" style="margin-bottom:32px;">
<tr>
<td style="padding-right:12px;">
<a href="mailto:ac"
style="display:inline-block;background:#213021;color:#FFD100;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;font-weight:600;text-decoration:none;
border-radius:8px;padding:12px 24px;">
Email zb
</a>
</td>
<td>
<a href="tel:a{"
style="display:inline-block;background:#f8f7f4;color:#213021;
font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;font-weight:600;text-decoration:none;
border-radius:8px;padding:12px 24px;border:1px solid #e0e0d8;">
Call aµ
</a>
</td>
</tr>
</table>
<!-- Session info -->
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"
style="border-top:1px solid #eeeee8;padding-top:20px;">
<tr><td>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.08em;color:#ccc;
text-transform:uppercase;margin-bottom:12px;">Session info</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
ú
IP addressÚBrowseraE
</table>
</td></tr>
</table>
</td>
</tr>
<!-- Footer -->
<tr>
<td style="background:#f8f7f4;padding:18px 48px;text-align:center;
border-top:1px solid #e8e8e4;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:12px;color:#bbb;">
Sent automatically by GoodWalk enquiry form
</div>
</td>
</tr>
</table>
</td></tr>
</table>
</body>
</html>)"rŒr4rsrÚstrftimeÚlstriprryrrr r!rrrrrr5r—r6rr2rrr3r)rrÿrr
Ú
2026-05-04 20:32:24 +12:00
first_nameÚ email_titleÚ
message_labelÚ
message_blockrðÚ referrer_rowÚpage_rowÚvisit_time_rowÚ
page_time_rowÚactive_time_rowÚ
form_time_rowÚstep_changes_rowÚ journey_rowÚdetail_headingÚ detail_rowss&&& rrGrG~Ü$ *€JØ04·
·
°
D—II˜dŸm™mÔ,À5€MÜ
,Š,.€CØ—<<Ð 6Ó7×>¸C€LØ-1¯]©]×-@Ñ-@×-BÒ-B×& €Jß,6Ñ(Ð<O€Kç!+€Mð ðBð
CPÀðQ<@¿<¹<¸I
ñ

ð#%ðð
÷¨\˜Ó
ð=A¿M¿M¸M”9˜[¨$¯-©-Ô8ÌyÐYdÐfyÓOz€LØ/3¯y¯y¨yŒy˜ §¡Ô+¸b€Hܘ~Ô/@À×ATÑATÐVZ×VhÑVhÓ/iÓj€NܘnÔ.?À×@RÑ@RÐTX×TfÑTfÓ.gÓh€MÜÐ 2Ô4EÀd×F]ÑF]Ð_c×_qÑ_qÓ4rÓs€OÜÐ.Ô0AÀ$×BTÑBTÐVZ×VhÑVhÓ0iÓj€MØKO×K[×K[ÐK[”y ´°T×5EÑ5EÓ1FÔGÐacÐܘI¤}°T·\±\Ó'BÓC€Kß*4Ñ&Ð:N€NܘvÔ':¸4Ó'@ÓB€KçØ <<ˆ × Ñ œ{¨5°$·,±,Ó ==ˆ=Ø × Ñ œ{¨:°t·}±}Ó Føà×Ñä˜E 4§<¡<Ó˜¯
©
2026-05-04 20:32:24 +12:00
Ó˜
Ó
ô
÷} ó} ð
ð} ð ˆð} ðU ð} ôx
 Ô 'Ð(ðy} ðx)ðy} ð\&˜,ð]} ð\'%ð]} ðb&*§Z¡Z Lðc} ðb1ðc} ðn—zzlðo} ðn#Kðo} ðbLPÏ=É=È/ðc} ðb Z'ðc} ðt(,§z¡z lðu} ðt31ðu} ðv26·±° ðw} ðv
=$ðw} ðJ%)§J¡J <ðK} ðJ01ðK} ðL26·±° ðM} ðL
=GðM} ð`HVÐFVða} ð`Wða} ðl—77˜(ðm} ðl)ðm} ðn!/ðo} ðn "#ðo} ð@$(§:¡: ,ðA} ð@/ðA} ðJ&˜,ðK} ðJ' ðK} ðR!%§
¡
˜|ðS} ðR,ðS} ð\Ÿ*™*˜ð]} ð\&ð]} ôx˜\¨2Ó/ðy} ðx0ðy} ôz˜Ó1ð{} ðz2ð{} ð|"ð}} ð|#ð}} ð~!} ð~"ð} ð@#ðA} ð@$ðA} ðB!/ðC} ðB"ðC} ðD$ðE} ðD%ðE} ðF .ðG} ðF!ðG} ðH*ðI} ðHðI} ðJ-ðK} ðJ ôK} ð} rcóHV^8„dQhR\R\R\R\/#r)r9r—)rs"rrr¸s0÷f ñf Ô!5ðf ¼3ðf Ìðf ÔQTñf rc óî\P!4PR4PR4pRP VP
4p\
R\VPVP44p\
R\VPVP44p\
R\VPVP44p\
R\VPVP44pVP'd\
RVP4M \
RR4p VP'd\
R VP4MR
p
VP'dR VP R 2MR
p VP 'dR
VP R 2MR
p VP"'dRVP" R 2MR
p
RVP$ R2pRV R2pR
P .RN\'VRR7 NRNVP( NRNVP( NRNVP* NRNVP* NRN\-RVP.4 NRN\-R\1VP(44 NRN\-RVP*4 NRN\-RVP24 NR N\-R!VP44 NRN\-R"VP64 NRN\-R#VP8;'gR$4 NRN\-R%V4 NRNV NRNV NRNV
NR&N\-R'VP:4 NRN\-R(VP<4 NRN\-R)VP>4 NRN\-R*VP@4 NRN\-R+R,4 NRN\-R-R,4 NRN\-R.R,4 NRN\-R/R04 NR1NV NR2N\
R3V4 NRN\
R4V4 NRNV NRNV NRNV NRNV NRNV NRNV
NR5N4#)6r
r rrrrrrrr>a;
<tr>
<td colspan="2" style="padding:16px 0 0;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.08em;color:#888;
text-transform:uppercase;margin-bottom:8px;">Temperament and routine</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;color:#444;line-height:1.6;background:#f0efe9;
border-radius:8px;padding:14px 16px;">ú </div>
</td>
</tr>a1
<tr>
<td colspan="2" style="padding:16px 0 0;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.08em;color:#888;
text-transform:uppercase;margin-bottom:8px;">Medical notes</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;color:#444;line-height:1.6;background:#f0efe9;
border-radius:8px;padding:14px 16px;">a<
<tr>
<td colspan="2" style="padding:16px 0 0;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.08em;color:#888;
text-transform:uppercase;margin-bottom:8px;">Home access instructions</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:14px;color:#444;line-height:1.6;background:#f0efe9;
border-radius:8px;padding:14px 16px;">á•
<div style="margin-top:16px;border-radius:16px;background:#ffffff;border:1px solid #e3e3db;padding:14px 14px 10px;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:11px;font-weight:700;letter-spacing:0.1em;color:#888;
text-transform:uppercase;margin-bottom:10px;">Captured signature</div>
<img src="ú{" alt="Client signature" style="display:block;max-width:100%;height:auto;border-radius:10px;background:#fff;">
</div>aT<div style="display:inline-block;background:#FFD100;border-radius:100px;
padding:10px 28px;">
<span style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:18px;font-weight:700;color:#213021;">
&#x270D;&nbsp; New onboarding form
</span>
</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
font-size:12px;color:#5a8a5a;margin-top:12px;">
Submitted ú
</div>aZ<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>New GoodWalk onboarding form</title>
</head>
<body style="margin:0;padding:0;background:#f2f2f0;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="background:#f2f2f0;padding:40px 16px;">
<tr><td align="center">
<table width="680" cellpadding="0" cellspacing="0" role="presentation"
style="max-width:680px;width:100%;border-radius:16px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,0.08);">
zSigned onboarding form©
<tr>
<td style="background:#ffffff;padding:38px 40px 34px;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation"
style="background:#213021;border-radius:12px;margin-bottom:26px;">
<tr>
<td style="padding:22px 24px;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:11px;font-weight:700;letter-spacing:0.1em;color:#7aaa7a;text-transform:uppercase;margin-bottom:10px;">
Quick contact
</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;color:#d8e6d8;line-height:1.6;margin-bottom:10px;">
Reply directly to the owner or call them back:
</div>
<div style="margin-bottom:10px;">
<a href="mailto:úé" style="display:inline-block;background:#ffffff;color:#213021;text-decoration:none;border-radius:10px;padding:12px 14px;border:1px solid #d9dfd9;font-family:Menlo,Consolas,'SFMono-Regular',monospace;font-size:18px;font-weight:700;">ú=</a>
</div>
<a href="tel:úã" style="display:inline-block;background:#ffd100;color:#213021;text-decoration:none;border-radius:999px;padding:10px 16px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:14px;font-weight:700;">Call aU</a>
</td>
</tr>
</table>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:11px;font-weight:700;letter-spacing:0.1em;color:#888;text-transform:uppercase;margin-bottom:16px;">Owner details</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="background:#f8f7f4;border-radius:12px;margin-bottom:24px;">
<tr><td style="padding:24px 28px;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
ÚNamerÚAddressac
</table>
</td></tr>
</table>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:11px;font-weight:700;letter-spacing:0.1em;color:#888;text-transform:uppercase;margin-bottom:16px;">Dog and service details</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="background:#f8f7f4;border-radius:12px;margin-bottom:24px;">
<tr><td style="padding:24px 28px;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
rÚBreedÚAger ÚServiceaZ
</table>
</td></tr>
</table>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:11px;font-weight:700;letter-spacing:0.1em;color:#888;text-transform:uppercase;margin-bottom:16px;">Safety details</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="background:#f8f7f4;border-radius:12px;margin-bottom:24px;">
<tr><td style="padding:24px 28px;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
z
Vet clinicz Vet phonezEmergency contactzEmergency phonezCouncil registrationÚ ConfirmedÚ VaccinationsúEmergency consentÚ DeclarationÚSignedú*
</table>
á
</td></tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="border-top:1px solid #eeeee8;padding-top:20px;">
<tr><td>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:11px;font-weight:700;letter-spacing:0.08em;color:#ccc;text-transform:uppercase;margin-bottom:12px;">Session info</div>
<table width="100%" cellpadding="0" cellspacing="0" role="presentation">
rrúž
</table>
</td></tr>
</table>
</td>
</tr>
</table>
</td></tr>
</table>
2026-05-04 20:32:24 +12:00
</body>
</html>)!rrrrsr?rrrrrr r!r@rArBrKrrr—r;r<r=r>rCrDrErF)rr
rr"r#r$r%r r!Údog_notes_blockÚ
medical_blockÚ access_blockÚsignature_blockrðs&&& rÚowner_onboarding_emailrE¸s”Ü—<<“>×*Ð+AÓB×IÈ#ÓN€LØ—I‘I˜d×2€Mܘ~Ô/@À×ATÑATÐVZ×VhÑVhÓ/iÓj€NܘnÔ.?À×@RÑ@RÐTX×TfÑTfÓ.gÓh€MÜÐ 2Ô4EÀd×F]ÑF]Ð_c×_qÑ_qÓ4rÓs€OÜÐ.Ô0AÀ$×BTÑBTÐVZ×VhÑVhÓ0iÓj€MØ<@¿M¿M¸M”9˜[¨$¯-©-Ô8ÌyÐYdÐfyÓOz€LØ/3¯y¯y¨yŒy˜ §¡Ô+¸b€Hð×"×>B×=MÑ=MÐ<NðO ñ
ð)+ðð,×#×>B×=NÑ=NÐ<OðP ñ
ð*,ðð,×)×>B×=TÑ=TÐ<UðV ñ
ð02ððð
×*
ð €Oð ð)˜*ð
€E÷d ód ð
 ðd ô
 Ð1IÔ JÐd ðLd ð8&*§Z¡Z Lð9d ð81Zð9d ð8[_÷[eñ[eðZfð9d ð8f ð9d ð<!%§
¡
˜|ð=d ð<,Oð=d ð<PT÷PZñPZðO[ð=d ð< [ð=d ôN˜v t§}¡}Ó6ðOd ðN7ðOd ôP˜w¬¨D¯J©J«Ó9ðQd ðP:ðQd ôR˜¯
©
Ó4ðSd ðR5ðSd ôT˜y¨$¯,©,Ó8ðUd ðT 9ðUd ôf˜u d§l¡lÓ4ðgd ðf5ðgd ôh˜¯
©
Ó7ðid ðh8ðid ôj˜u d§k¡k×&:Ð&:°UÓ<ðkd ðj=ðkd ôl˜y¨-Ó9ðmd ðl:ðmd ðn#ðod ðn$ðod ðp!/ðqd ðp"ðqd ðr .ðsd ðr !ðsd ôD˜|¨T¯\©\Ó;ðEd ðD<ðEd ôF˜{¨D¯M©MÓ;ðGd ðF<ðGd ôHÐ2°D×4MÑ4MÓOðId ðHPðId ôJÐ0°$×2LÑ2LÓNðKd ðJOðKd ôLÐ5°{ÓDðMd ðLEðMd ôN˜~¨{Ó<ðOd ðN=ðOd ôPÐ2°KÓAðQd ðPBðQd ôR˜}¨hÓ8ðSd ðR9ðSd ðV!ðWd ðV"ðWd ôf˜\¨2Ó/ðgd ðf0ðgd ôh˜Ó1ðid ðh2ðid ðj"ðkd ðj#ðkd ðl!/ðmd ðl"ðmd ðn#ðod ðn$ðod ðp!/ðqd ðp"ðqd ðr .ðsd ðr!ðsd ðt*ðud ðt
ôud ðd rcóHV^8„dQhR\R\R\R\/#)rÚpayloadrÎr)rs"rrrcs(÷/ñ/œtð/¬Cð/¼Sð/ÄTñ/rcƒó„"\'d@VPR.4pVPRR4p\PRWV4RR/#Rp\ ^\
^,4p\ P!4p\P!\PPV4GRjxL
p\ P!4V,
R,p \V\4'dVPR4MRp
\PRY!VPR4T\
Yš;'gR 4T;'g/u# VfQhVh\ Ed^p T p\ P!4T,
R,p \#T R
R4;'g\#T R R4p \T \$4;'d$R T u;8*;'dR
8Mu;'dT R8gp
\PRY!T\
T \'T 4P(Y¼RR7
T
'd\PRY!T 4Rp ? T\
8Xd Rp ? EK^T^,
,\*P,!^R4,p\PRY!T4\P.!T4GRjxL
Rp ? EKQRp ? ii;i5i)ÚtoÚsubjectz (no subject)u7[DEV] skipping email send — label=%s to=%s subject=%rÚidzdev-modeNrz1[%s] %s sent to %s (attempt %d/%d, %.0fms, id=%s)zn/aræÚcoderz?[%s] %s send failed (attempt %d/%d, %.0fms): %s: %s (status=%s)T©Úexc_infoz2[%s] %s: non-retryable status %s, aborting retriesgš™™™™™Ù?z[%s] retrying %s in %.2fs)r=r#rtÚrangeÚMAX_SEND_ATTEMPTSréÚresendÚEmailsÚsendržrCr3r|Útyper%ÚrandomÚuniformÚsleep)rGrIrJÚlast_excÚattemptrÚresultrÚemail_idr®ÚstatusÚ
non_retryableÚbackoffs&&& rÚ _send_emailr_cs7é߃xØ
[‰[˜˜
Ø—+‘+˜i¨ÓÜÐPÐRWÐ]dÔ!à!%€Hä˜ÔÕÜ—."ˆð! )Ü"×,¬V¯]©]×-?Ñ-?ÀÓIˆFÜŸ.š.Ó*¨WÕ4¸Õ<ˆJÜ+5°f¼d×+CÒ+Cv—zz ˆ K‰KØ 7§;¡;¨tÓ#4°gÔ?PØ×ô
ð
—<<˜ ñ3ðJ Ò ÐÐ Ø
€NñGJøôõˆHÜŸ.š.Ó*¨WÕÕ<ˆ˜S Ó6×T¼'À#ÀvÈtÓ:Tˆ˜6¤3Ó'×Q¨C°6×,?Ô,?¸CÔ,?×QÀFÈcÁMð
ô
N‰NØ 7Ô,=¸S“ ×" ð
ô
÷ Ü Ø vôöØÔؘW q)¬V¯^ª^¸A¸sÓ-CÕCˆGÜ K‰KÐ3°ZÈÔ —-’- Ó (ûð/ )üsˆA=KÂ2EÂ2EÂ3A?EÄ3EÅEÅ
KÅEÅ J=Å AJ8Æ>J8Ç
J8ÇAJ8È5KÈ< J8ÉKÉAJ8Ê+J.Ê,J8Ê1KÊ8J=Ê=Kcó$V^8„dQhR\/#r
)rs"rrrs÷ñÔ(9ñrcó\\P!4R,4p\R/RRbRRbRRbRRbR R
bR R bR
RbRRR.bRVR,
bRVR,
bRVR ,
bRVR!,
bRVbR^bR.R"ObRRbRRbp\V4V#)#rr1r/rzSarah ThompsonrÎzsarah.thompson@example.comrz 021 555 0142r2ÚMilor3z Grey LynnrzÉMilo is a 2-year-old cavoodle with good recall and a friendly nature. He loves other dogs, is comfortable off lead in safe areas, and we are looking for regular weekday pack walks while we are at work.r4z
Pack Walksz Puppy Visitsrrrrrr5r6r z=https://www.google.com/search?q=goodwalk+auckland+dog+walkingr!z2https://www.goodwalk.co.nz/book?service=pack-walksr$iPø i(|iâ)Ú/z /pack-walksz /our-pricingz/book)r|r.)Únow_msÚsamples rÚ_build_startup_test_submissionrfÜ
˜
$€Fä
òÙðáññð ñ
ð ñ ð
ñ
Kðð ÑðÐ 9ÖðÐ!;ÖðÐ 8Öð "Ð%>Ö?ð!ñ"ð#ñ$ð%ó&>ð'ñ(Qð)ñ*Bð+€Fô.˜ €MrcóV^8„dQhRR/#©rrNr$)rs"rrr³s÷RñR¨ñRrcƒóH"\'g\PR4R#Rp\4pR\R\.R\ VP 4RRVP RVP R 2R
\VR R \ R 24/p\VR
VR7GRjxL
R#L5i)zBStartup test email skipped: OWNER_BCC is not set to a real addressNz startup-testÚfromrIrJrJu*Startup preview — New GoodWalk lead — ú (rVÚhtmlz 127.0.0.1zStartup Preview (Ústartup_test_email©) ÚSTARTUP_TEST_RECIPIENTrtr3rfrIr—rr2rGr…r_)rerGs rÚ_send_startup_test_emailrp³séß  Ðà€JÜ
-€Fà
Ø Ô”C˜Ÿ ÓÐÇÁÐ?PÐPRÐSY×SaÑSaÐRbÐbcÐ ˜F KÐ3DÄ[ÀMÐQRÐ1SÓ €Gô gÐ%9ÀjÔ
Q×QùsBB"ÂB ÂB"ÚstartupcóV^8„dQhRR/#rhr$)rs"rrrÈs÷6 6rcƒó†"\4GRjxL
R#L \d\PR4R#i;i5i)NzStartup test email failed)rprtr r$rrÚ_startup_mail_checkrtÇs3éð(øÜ ô×ÑÐ6üs,A
A˜š >ºA½>¾Az/healthcó$V^8„dQhR\/#r
rB)rs"rrrÏs÷ñ”dñrcƒó"RR/#5i)r\Úokr$r$rrÚhealthrxÎséà  Ðùscó<V^8„dQhR\R\R\/#)rrLr)rs"rrrÓs!÷) ñ) œCð) ¤sð) ¬sñ) rcó8R\ RV R\^<, R2#)a¿<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Your Goodwalk login code</title>
</head>
<body style="margin:0;padding:0;background:#f2f2f0;">
<table width="100%" cellpadding="0" cellspacing="0" role="presentation" style="background:#f2f2f0;padding:40px 16px;">
<tr><td align="center">
<table width="480" cellpadding="0" cellspacing="0" role="presentation"
style="max-width:480px;width:100%;border-radius:16px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,0.08);">
<tr>
<td style="background:#213021;padding:32px 40px;text-align:center;">
<img src="aÊ" width="161" height="32" alt="Goodwalk" style="display:inline-block;max-width:161px;height:auto;border:0;">
</td>
</tr>
<tr>
<td style="background:#ffffff;padding:40px 40px 36px;text-align:center;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:13px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#888;margin-bottom:16px;">Your login code</div>
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:52px;font-weight:800;letter-spacing:0.18em;color:#213021;background:#f8f7f4;border-radius:14px;padding:20px 28px;display:inline-block;margin-bottom:24px;">aŽ</div>
<p style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:15px;color:#666;line-height:1.6;margin:0 0 8px;">
Enter this code on the Goodwalk onboarding page.
</p>
<p style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:13px;color:#aaa;margin:0;">
This code expires in aë minutes. If you didn&rsquo;t request this, you can safely ignore it.
</p>
</td>
</tr>
<tr>
<td style="background:#213021;padding:20px 40px;text-align:center;">
<div style="font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:12px;color:#5a8a5a;">
Goodwalk &middot; Auckland, New Zealand
</div>
</td>
</tr>
</table>
</td></tr>
</table>
</body>
</html>)r‡)rLs&&rÚ_auth_code_emailr{ÓsEðô !Að BFðAGðG
%:¸RÕ$?Ð#@ðAð3( ð( rz^[^\s@]+@[^\s@]+\.[^\s@]+$z/auth/request-codecó$V^8„dQhR\/#rr)rs"rrrs÷,ñ,¤Wñ,rc
ƒóŠ"\VPR\P!4PR,4p\ V4pVP
4GRjxL
p\VPRR44P4P4p\;_uu_4GRjxL
\W!4RRR4GRjxL
V'd\PV4'g\RRR7hV\ 9dX\"P%RWV4\;_uu_4GRjxL
\'W!R 4RRR4GRjxL
\R
R R7h\(P*!4p\;_uu_4GRjxL
\,P/V\144pV'd'WV^,,
R 8”dVP34K.\5V4\6d\R
RR7hVP9V4\\:P<!R4R,4pRVR\(P(!4\>,R^/\@V&RRR4GRjxL
\"P%RW4\B'd\"PERVX4RR/#\GR\HRV.RRR\KVX4/RVR7GRjxL
RR/#EL{EL0EL +GRjxL
'giEL0;iEE+GRjxL
'giELÎ;iEL+GRjxL
'giLÕ;iLr5i)rNrÎr>rz#Please enter a valid email address.ruz![%s] auth: unknown email=%s ip=%sÚ
unknown_emailr”u‡We don’t have your email on file. Please use the address you used when enquiring with Goodwalk, or contact us at info@goodwalk.co.nz.r‰z8Too many code requests. Please wait before trying again.i »
i †rLÚ
expires_atrgz#[%s] auth: code issued for email=%sz[DEV] auth code for %s: %srjrIrJzYour Goodwalk login coderlÚauth_code_emailrnrwT)&ržr rr r
rar—r#ryrzÚ _EMAIL_REÚmatchrrtr3Ú_code_requestsrôrÚAUTH_CODE_REQUESTS_PER_HOURrrÚsecretsÚ randbelowr‡Ú_pending_codesr=r_rIr{)rÚbodyrÎÚrequestsrLs& rÚauth_request_coderŠsBé䘟¨ ´d·j²j³l×6FÑ6FÀrÕ6JÓK€JÜ Ó €BØ× €DÜ ˜  &× .× 6€EçzŽzܘ œ Ÿ¨×¨Ð4YÔ ”OÔ ÐÈBÔ—:–:Ü  °Ô —:äØð]ô
ð
ô
.Š.Ó
€CßzŽzÜ!×,¨U´E³GÓߘ3¨!¥Õ,¨tÔ × Ñ Ö Ü ˆx‹=Ô ¨CÐ8rÔ ˜Ôä”7×$ VÓ,¨vÕ6ˆØ!'¨¨|¼T¿YºY»[ÔK`Õ=`ÐblÐnoÐ pŒ÷ ‡K5°zÔƒxÜÐ3°U¸DÔ
$ˆô
Ø
”Z ¨ w° Ð;UÐW]Ô_oÐpuÐw{Ó_|Ð 
÷
ð
ð
$ˆòS ÷zzzú÷—:—:—:ú÷zzzúñ 
ùsAMÁKÁA
MÂ*KÂ+MÂ. K Â: MÃKÃ MÃMÃ-AMÄ.K=Ä/MÄ2
LÄ? MÅ
LÅ 8MÆL ÆMÆ&L%Æ.B+L%É MÉ$L#É%A)MËMË MËMËMË K: Ë&K)Ë'
K: Ë2K: Ë4
MÌMÌL Ì L Ì
L ÌL Ì
MÌ#MÌ%L> Ì+L.Ì,
L> Ì7L> Ì9 Mz/auth/verify-codecó$V^8„dQhR\/#rr)rs"rrr3s÷&&8¤Gñ&8rc
ƒó~"\VPR\P!4PR,4p\ V4pVP
4GRjxL
p\VPRR44P4P4p\VPRR44P4p\;_uu_4GRjxL
\W!4\PV4pV'g\W!R4\RRR 7h\ P !4VR
,8”d0\P#VR4\W!R 4\RR R 7hVR
;;,^,
uu&VR
,\$8”d0\P#VR4\W!R4\RRR 7hVR,V8wdH\'^\$VR
,,
4p\W!R4\RRT RV^8wdRMR R2R 7h\P#VR4\(P*!^ 4pRVR
\ P !4\,,/\.V&RRR4GRjxL
\0P3RW4RRRXRV/#EL=EL( +GRjxL
2026-05-04 20:32:24 +12:00
'giL?;i5i)rNrÎr>rLÚno_pending_coderz7No code found for this email. Please request a new one.rurÚ expired_codez0Your code has expired. Please request a new one.rgÚmax_attempts_exceededz7Too many incorrect attempts. Please request a new code.Ú
wrong_codezIncorrect code. z attemptrÛz remaining.z'[%s] auth: session created for email=%srwtoken)r rr r
rar—r#ryrzr‡rÚpopÚAUTH_CODE_MAX_ATTEMPTSr{r…Ú
token_urlsaferŠÚ_active_sessionsrtr3) rrˆrLÚpendingrîrs & rÚauth_verify_coder—2s%é䘟¨ ´d·j²j³l×6FÑ6FÀrÕ6JÓK€JÜ Ó €BØ× €DÜ ˜  &× .× 6€EÜ ˆtx‰x˜ Ó ,€DçzŽzܘ ×$ çÜ  Ð1BÔ ¨CÐ8qÔ 9Š9‹;˜ Õ × Ñ ˜u dÔ  °Ô ¨CÐ8jÔ 
טqÕ ÓØ  Ô!7Ô × Ñ ˜u dÔ  Ð1HÔ ¨CÐ8qÔ 6?˜ ˜5¸À
Õ8KÕLˆ  °Ô ¨CÐ:JÈ9È+ÐU]ÐenÐrsÔesÑ^aÐy{Ð]|ð}Hð9IôJð
Jä×ј5 ×% )ˆØ#*¨E°<ÄÇÂÃÔOgÕAgÐ"hÔ˜Ñ÷9zô< ‡K9¸  ¨°Ð 7òG ÷zzzüsbAJ=ÁJÁA6J=ÃJÃJ=ÃFJ!É+ J=É6JÉ7#J=ÊJ=ÊJ=Ê!J: Ê'J*Ê(
J: Ê3J: Ê5J=z /auth/verifycó$V^8„dQhR\/#rr)rs"rrr]s÷LñLœwñLrcƒó’"VPPRR4pVPR4P4pV'g\ RRR7h\
;_uu_4GRjxL
2026-05-04 20:32:24 +12:00
\ PV4pV'g\ RRR7h\P!4VR,8”d$\ PVR4\ RR R7hRRR4GRjxL
XR
,p\PV/4p\PV/4pR R R
VR
VRV/#LE +GRjxL
'giL\;i5i)Ú
Authorizationr>úBearer é‘úNo token provided.ruNzInvalid session.rz&Session expired. Please sign in again.rÎrwTrÙÚdraft) r#Ú removeprefixryrr•rÚ_drafts)rÚ auth_headerrÚsessionrÎs& rÚ auth_verifyr£\éà—/‘/×% o°rÓ:€KØ × $ YÓ 7€Eç ܨÐ4HÔzŽzÜ"×& -ˆßܨCÐ8JÔ 9Š9‹;˜ Õ × Ñ  ¨Ô ¨CÐ8`Ô

2026-05-04 20:32:24 +12:00
 €EÜ×" 5¨"Ó-€GÜ K‰K˜˜ "€EØ $˜ ¨ °7¸GÀUÐ zzŒzüsPA#EÁ%D'Á&EÁ)A/D+à EÃ#D)Ã$AEÄ)EÄ+E Ä1D4Ä2
E Ä=E Ä?Ez /auth/logoutcó$V^8„dQhR\/#rr)rs"rrrss÷ñœwñrcƒó`"VPPRR4pVPR4P4pV'dB\;_uu_4GRjxL
\
P
VR4RRR4GRjxL
RR/#RR/#L2L +GRjxL
'giRR/#;i5i)r>rNrwT)r#ryr•r)rrs& rÚ auth_logoutr¦rs}éà—/‘/×% o°rÓ:€KØ × $ YÓ 7€Eß ß—:–:Ü × Ñ  ¨Ô —:à $ˆˆD$ˆ÷—:—:“:à $ˆüsNAB.ÁB ÁB.ÁBÁ3 B.Á>B
Á?
B.Â
B.ÂB+ ÂBÂ