From 447e07861e83b7f40ec5e20bff444dcd841bad21 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Wed, 21 Oct 2026 19:42:28 -0700 Subject: [PATCH] Show a merge's push to the remote while it runs --- api/openapi.yaml | 6 +- internal/agents/mergein.go | 2 +- internal/api/api.gen.go | 694 ++++++++++++----------- internal/store/store.go | 32 +- mac/Sources/Byre/Store.swift | 1 + mac/Sources/Byre/TranscriptBuilder.swift | 3 + 6 files changed, 374 insertions(+), 364 deletions(-) diff --git a/api/openapi.yaml b/api/openapi.yaml index a963ead..dab7be7 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -1548,9 +1548,9 @@ components: background: { type: boolean, description: "Whether the task is an audit's run or stage task that hasn't asked for attention yet: no question, ready_for_merge or error so far (for a run, from any of its stage tasks). The app keeps it out of the task switcher and shows it muted on the Project tab, and the lead gets no signals about it." } state: type: string - description: "The one state the task is in, kept by the store in the same transaction as every change to it (a task.state event carries each change). The first that holds: merged or discarded once closed; for a workflow run's task, finished once the run finished, running while one of its stage tasks is running, else idle; discarding; asking while it has an open question; merging while a Merge or a merge into its parent is under way; merge_held while its Merge waits for another merge in the project; merge_after_review while a Merge with after_review waits for its review; running while one of its agents is mid-turn or has subagents running; reviewing while a review runs; review_pending between a turn's end and its snapshot's review starting or being skipped; ready_to_merge or discard_suggested when the agent's latest ready_for_merge or suggest_discard still stands; finished when it runs a workflow stage whose finish_stage has taken; idle; no_agent when it has no live agent." - enum: [running, idle, finished, review_pending, reviewing, merging, discarding, merged, discarded, no_agent, asking, merge_held, merge_after_review, ready_to_merge, discard_suggested] - x-enum-varnames: [TaskStateRunning, TaskStateIdle, TaskStateFinished, TaskStateReviewPending, TaskStateReviewing, TaskStateMerging, TaskStateDiscarding, TaskStateMerged, TaskStateDiscarded, TaskStateNoAgent, TaskStateAsking, TaskStateMergeHeld, TaskStateMergeAfterReview, TaskStateReadyToMerge, TaskStateDiscardSuggested] + description: "The one state the task is in, kept by the store in the same transaction as every change to it (a task.state event carries each change). The first that holds: merged or discarded once closed; for a workflow run's task, finished once the run finished, running while one of its stage tasks is running, else idle; discarding; asking while it has an open question; pushing once a Merge's turn has ended and byre is pushing its squash commit to the remote (a task.pushing event names the commit); merging while a Merge or a merge into its parent is otherwise under way; merge_held while its Merge waits for another merge in the project; merge_after_review while a Merge with after_review waits for its review; running while one of its agents is mid-turn or has subagents running; reviewing while a review runs; review_pending between a turn's end and its snapshot's review starting or being skipped; ready_to_merge or discard_suggested when the agent's latest ready_for_merge or suggest_discard still stands; finished when it runs a workflow stage whose finish_stage has taken; idle; no_agent when it has no live agent." + enum: [running, idle, finished, review_pending, reviewing, merging, pushing, discarding, merged, discarded, no_agent, asking, merge_held, merge_after_review, ready_to_merge, discard_suggested] + x-enum-varnames: [TaskStateRunning, TaskStateIdle, TaskStateFinished, TaskStateReviewPending, TaskStateReviewing, TaskStateMerging, TaskStatePushing, TaskStateDiscarding, TaskStateMerged, TaskStateDiscarded, TaskStateNoAgent, TaskStateAsking, TaskStateMergeHeld, TaskStateMergeAfterReview, TaskStateReadyToMerge, TaskStateDiscardSuggested] merging: { type: boolean, description: "Whether a Merge was started and hasn't finished: its turn is running, or the turn ended and byre is squashing, pushing and closing the task." } discarding: { type: boolean, description: "Whether a Discard was started and the task isn't closed yet: its summary turn is waiting for the running turn, running, or done and the task is being removed." } parent_task_id: { type: string, description: "The task whose agent created this one as its subtask, or for a stage task its workflow run's task; absent for other tasks." } diff --git a/internal/agents/mergein.go b/internal/agents/mergein.go index b1f280c..ccbf701 100644 --- a/internal/agents/mergein.go +++ b/internal/agents/mergein.go @@ -341,7 +341,7 @@ func (m *Manager) landMerge(ctx context.Context, f store.FinalizingMerge) error } return m.closeUnchanged(ctx, task, project, f.By) } - err = m.store.SetFinalizingCommit(ctx, task.Id, commit, notes) + err = m.store.SetFinalizingCommit(ctx, task.Id, commit, notes, git.Remote+"/"+project.DefaultBranch) if err != nil { return err } diff --git a/internal/api/api.gen.go b/internal/api/api.gen.go index 5165024..cf8d402 100644 --- a/internal/api/api.gen.go +++ b/internal/api/api.gen.go @@ -472,6 +472,7 @@ const ( TaskStateMerged TaskState = "merged" TaskStateMerging TaskState = "merging" TaskStateNoAgent TaskState = "no_agent" + TaskStatePushing TaskState = "pushing" TaskStateReadyToMerge TaskState = "ready_to_merge" TaskStateReviewPending TaskState = "review_pending" TaskStateReviewing TaskState = "reviewing" @@ -503,6 +504,8 @@ func (e TaskState) Valid() bool { return true case TaskStateNoAgent: return true + case TaskStatePushing: + return true case TaskStateReadyToMerge: return true case TaskStateReviewPending: @@ -1534,7 +1537,7 @@ type Task struct { // ReadyMerge The merge the agent's standing ready_for_merge offers as the default: complete lands the work and closes the task, continue lands it and keeps the task open. Absent while no ready_for_merge stands. It changes only with a task.ready, task.discard_suggested, task.ready_cleared, snapshot.created or inbox.created event. ReadyMerge *TaskReadyMerge `json:"ready_merge,omitempty"` - // State The one state the task is in, kept by the store in the same transaction as every change to it (a task.state event carries each change). The first that holds: merged or discarded once closed; for a workflow run's task, finished once the run finished, running while one of its stage tasks is running, else idle; discarding; asking while it has an open question; merging while a Merge or a merge into its parent is under way; merge_held while its Merge waits for another merge in the project; merge_after_review while a Merge with after_review waits for its review; running while one of its agents is mid-turn or has subagents running; reviewing while a review runs; review_pending between a turn's end and its snapshot's review starting or being skipped; ready_to_merge or discard_suggested when the agent's latest ready_for_merge or suggest_discard still stands; finished when it runs a workflow stage whose finish_stage has taken; idle; no_agent when it has no live agent. + // State The one state the task is in, kept by the store in the same transaction as every change to it (a task.state event carries each change). The first that holds: merged or discarded once closed; for a workflow run's task, finished once the run finished, running while one of its stage tasks is running, else idle; discarding; asking while it has an open question; pushing once a Merge's turn has ended and byre is pushing its squash commit to the remote (a task.pushing event names the commit); merging while a Merge or a merge into its parent is otherwise under way; merge_held while its Merge waits for another merge in the project; merge_after_review while a Merge with after_review waits for its review; running while one of its agents is mid-turn or has subagents running; reviewing while a review runs; review_pending between a turn's end and its snapshot's review starting or being skipped; ready_to_merge or discard_suggested when the agent's latest ready_for_merge or suggest_discard still stands; finished when it runs a workflow stage whose finish_stage has taken; idle; no_agent when it has no live agent. State TaskState `json:"state"` Status TaskStatus `json:"status"` @@ -1558,7 +1561,7 @@ type Task struct { // TaskReadyMerge The merge the agent's standing ready_for_merge offers as the default: complete lands the work and closes the task, continue lands it and keeps the task open. Absent while no ready_for_merge stands. It changes only with a task.ready, task.discard_suggested, task.ready_cleared, snapshot.created or inbox.created event. type TaskReadyMerge string -// TaskState The one state the task is in, kept by the store in the same transaction as every change to it (a task.state event carries each change). The first that holds: merged or discarded once closed; for a workflow run's task, finished once the run finished, running while one of its stage tasks is running, else idle; discarding; asking while it has an open question; merging while a Merge or a merge into its parent is under way; merge_held while its Merge waits for another merge in the project; merge_after_review while a Merge with after_review waits for its review; running while one of its agents is mid-turn or has subagents running; reviewing while a review runs; review_pending between a turn's end and its snapshot's review starting or being skipped; ready_to_merge or discard_suggested when the agent's latest ready_for_merge or suggest_discard still stands; finished when it runs a workflow stage whose finish_stage has taken; idle; no_agent when it has no live agent. +// TaskState The one state the task is in, kept by the store in the same transaction as every change to it (a task.state event carries each change). The first that holds: merged or discarded once closed; for a workflow run's task, finished once the run finished, running while one of its stage tasks is running, else idle; discarding; asking while it has an open question; pushing once a Merge's turn has ended and byre is pushing its squash commit to the remote (a task.pushing event names the commit); merging while a Merge or a merge into its parent is otherwise under way; merge_held while its Merge waits for another merge in the project; merge_after_review while a Merge with after_review waits for its review; running while one of its agents is mid-turn or has subagents running; reviewing while a review runs; review_pending between a turn's end and its snapshot's review starting or being skipped; ready_to_merge or discard_suggested when the agent's latest ready_for_merge or suggest_discard still stands; finished when it runs a workflow stage whose finish_stage has taken; idle; no_agent when it has no live agent. type TaskState string // TaskStatus defines model for Task.Status. @@ -4769,349 +4772,350 @@ func HandlerWithOptions(si ServerInterface, options StdHTTPServerOptions) http.H // const string: with thousands of chunks the chained `+` fold is several // times slower for the Go compiler than parsing a slice literal. var swaggerSpec = []string{ - "7L1tcxu5tTD4V1DcrZKd26I8yeTZjVT7wfF4Mn7ueMZrOTu1m6QYiA2RiJoAB0BbZlze3/7UeQEa3Y0m", - "KdmynZv7xaa60Xg5ODg47+f9bGk3W2uUCX52/n7mlN9a4xX+8dw56+DH0pqgTICfcrtt9FIGbc3ZP7w1", - "8Mwv12oj4df/7tT17Hz2v511vZ7RW39GvX348KGa1covnd5CJ7NzGmY+gxfcFrp6ulImvHJ2qTz+vXV2", - "q1zQNLW1kk1Yw69+Xz60yxuxUdJ4IUVonRHaC9cao81KSFMLY4UPTsmNUG+VCWItvZDO6beqFtfWCexh", - "Ia+DcguvltbU/kKodzqomvsNayW2NDHofGWNms+qmTLtZnb+l5m9mVU0D3iIH87+Vs3Cbqtwgk6b1aya", - "vTuFD07fSmfkBhb1l9kPuKif4Tv6ecm90F/Pua8P1ayRPixw/gsZxlD4Za1Mb5rQXtw6G5SQotFGiWCF", - "Dp5BMatm19ZtoKtZLYM6DXqjZtXMOnELXekgfJAuqHo+Ozdt0wyX86GabXUNE+Hn2gS1Ug5eeOW9tmbR", - "e99954MMCt5IL6wRuO2X9EkarL+6N2sluNMTL+j7woSC9DdTg75Vprau8OpDNXPq11Y7VcOOZHPvOkyf", - "06LjEoa7UkUk7TbfXv1DLQNMIF/mGLuXTsmgat7b4taMlhS/udoVV3xt3U3qcYAtOqwFv792dnOOqENr", - "PPFC18Je4yPEorCGkwR/wifiRqmtr4QUG+W9XOFT8ayRba3EM1urKh5DfG5r9W5emn02/HiCT3GoEy+u", - "tfOMisIp324UnEbtebIRKyqxbIOQQaRFV6I1tXJCCqNuufWi29wLIa+8MviBsGGtUle+ONsJrNqozZVy", - "4/kDwkrY8BMv4LALbfDwAUKdeBGU3FwItdmGHZwAic/FLeyKNfxlhbQLptcoWXv8y6m3Wt0qV57jxtaq", - "Gc/ltfq1VR6JGTSI43aULe17ra5l24S5eBqBIaxpdsLf6rBcKy+uVLhVipZib033JfZcnpW9NVMQauxK", - "G3G7tl7hImnhtL/ax4kCCGSEnI90ojCSs40aDxRhdi4kw6/rRjzySonX+PTxxWgULxrtA0ztLaKd8krY", - "NuSkX2+2jdooE5QDcqBkPavSkONLIKd+qYu6UfAR3VizCu/nRh1/ieSU5RJ6f0E9jp6/TkOMXj3rxoQ5", - "tle4FX4Mzh/srdhIs4sUImJ5+kRIp+L1W4krubxZOduaGjDbC22WTVurWuB1iz0grQhrmW4ceLrBW1qZ", - "Gi6gqnDHZLR+wFtkSINItQ9luluh38n3tmnsrRdAnXCSiOD4K6LOrfSCKTCe3HOx2obT31BLZEDgaCP9", - "q8RKbbTR3Vu49kzQKyff6rCrgDFxO6ZDNJQ1OU3NUW6JjxFPavVuVs1k19Psb5OLXPRv5f56s6Gy06Hr", - "SizhdBpxtRNXO6cuhKVNw3WJsHYAYbgvXL4gsbTmrXJehtgNHeXWBN2HYkbfS+RjcDkPLmUiLdnlTBSw", - "tOLuykYqkSh37xat8ms4PwXF+zwEuVxvmEke3OaSAVu4MmotV04W7jx+cS68bd1SwQGT4u9//zs/F1eN", - "Xd4UsViZegEsXpkb0xu5KtBFfHwuahmk+PPrH4sd32hT56TqWiPsan19PYsddyuirQHAGbn1awswbF1T", - "xMmtLPHy0P+5cGprT51qZNBvlYCWc8GzlYZ+CWgJlyoSECLat9bdBKdUBVe7bdqgACtTP8j+lu8NdT2e", - "CqzxXKx0wEsDcdVJs1LFHuKC93C8LuzZon2MK0DwINeKG1XE0lu5G+On5Kfc/MraRkkz6hWblXr9Y2Ov", - "ClhPMuOCmr+fZlg/IZNbBFqJavQmN33qi6u10tWvrA/PsN144UG9C4enga1K/T9rtDLh+Tu1LMAU35XZ", - "J3oXOUzrxICtpXvLB+HUUpnQ7IRc4lFg8XUMa7vZSFO4Hl63hrjTf/q1AOmZWTe/Vk0Tj+HabpSotVPL", - "YB2AVXeMYpRKgRXYTkuUgAS2DYtNgfH4T900PQkX+0p8hPaisWZVYhYG+xBX2Rtu/768Vr5twt12pxOi", - "qBWxOE6aKTIEioMF3OkTQnWolXO9g3O1K8vBPtS2DUc0HUKGlpNPJXWWJjANqddq2+wmZKHtVnhlao/y", - "jYOGhFByuVTboGrhVQDM8hbkIS80Ya0GxlsKRyJMJbxFNkTcGODOoAcN4tPGbhKEAeIv5VJo4t4V8aFh", - "rQyOfa2NbLIZ2DbAhvzVzKohkeSpjVd0qQIJRpYwn5gY7LMSt2u9XAsvdyRcwcp5JcjYxrWgPBcZXjtA", - "ikSQKyCOsiTUyHpBtyVNoAG+jWmcnwuvV4Ze1QrYFACwXhkZWodH/yAKqagIHK/8Nqqa4kqWtm1qcxLE", - "lRJL6ZxWdRST9iN5v+8r6deVUO/UssrmDx8AnELrK3H6TdJOAft9o5tG1cCbomxNp7ksLui6jJi8BlR6", - "lMXXNmzbUJ7tuaDDwXsJx0MEu1JhrVwlZCDqG9ZKO9Kk/I9vxX/qP+bbA79Au7J1FnioE8/9AB4pp3Cl", - "TgflcYl/Mu2rPzE0UKnnSUsQ1iqnyCde0LQn2J1IzGRda1iObF5lmB9cq4YKuLU0tacZB2thgJfPXoln", - "smneWNsQeZzPCpSho1r9DmGbz0ns6dRLTJlZbRksw+IohO1o3j0HYtS5G8XU9V56iLhVUL+BGo2VPqzr", - "QXF1o9xKVUL6GyB6S2uMWgZVIzkLVtS2Eni527fKiTO51WdEsf0Zt52PiZhbtZsoyX/MfqeOits8yTl0", - "h/ocReI7chGVmGYiCkhQJpZ4gMbUEvSCkWJeiK10ANo4slakyGDWMD+yrYHfqkYs0kEQFCLhj9cPtKEb", - "KjItKMTBWkCoWFpzrVfIuXlk1vDFdjUn/BOP7FaZ7WoLiPHu90/+8LgSS4nUTnIHsmk83xoHD0ddRMN2", - "21hZnzOlwcvKLdf6LQAHrkplgtsJvLXbbV+qwosLThMu8P8/uxC3axnglAmN955T8AOuRLlU9V1Uqrou", - "slQd/AnsAUmsF3+d/QTc71/bJ09+t1QbqRv8qf46q/Bg6xXyE+nSeimXJ70tAD2TsaL1ys2ZGt+oXfku", - "2ObCMKA28kpqOasYmLNqVttbwz/TLT2rMiScVXS8ZhUuagb9KrPYkjCNv7HZ8WJzHLISacRKlLBePLKu", - "QnTrPsHn1iXM3z2ObA0Rl/0bPxdp8pVIcy+NmF4WhqyE7P4AjIMRtBFnaS5eubfK9eeSi/YFPcB8ykQ0", - "BuD0GqC9uFJe14oV1cFJQ98m/s6vgRuNSz7vQBKpF/4GnXDWf3z3vW6UF0Felee7RyIaM0w395aRqhnQ", - "+fEY2UUAjPcp/o13AkAdiFB52gCk65LePxIdBC63ErqG3lYqkMK1d7XFRv7sffz5ov4wTxhc7Grbhpyg", - "iWCPVC7a7Z4L/XJnlpPyzQnYXIPyAUQM7YHl1s8a29bC78wS9t2hOrQT0WGpMkqHpBpFsWdrXfBRSB9c", - "51OmX90NO5+y7R7L5P+y3mF/Ujeq0yggBbVlBaS9KU4L1dkolKXVC98ul0r11fpT+ie0q08oZcBgIZeT", - "KpkJW9hLeJyUI8ABJAOiNUJpnDFpj+cCNtY2yYAgfIDjxew48irS1Pb6ei6+I8OZj5Qo+yoax8r4V1gW", - "M33PkmphqGSD26+MhXSrwftEmkBMump1Q+gGmAFYp4MXf4Tj/Ixar5WslYsGt3RXMmri9hvExynFTeJV", - "9zsnJI3VL+rq0i5vVOi43OPRdm39BADockd1WH+dP1gfV7mHFxl3+OK7BMmNrJVot0P3iDFICWhxsCmI", - "oecA6OOsmYYZ6jqgZadCSMoQwsB2Iw1NjU1V2qdt02ZJVDvOtX+WDVOY44COrHpZuc1UcZ8nUEY/i2SX", - "euetrSKSD/CqRAb45L2Mx32CCuyn/NSs2L12z4ELHnetV8a6knIIDiG9JCKBXPS5mK90oMdJYidzn3qH", - "FlFkHbzYyLBcA3pZ1+OJ5JV9qyaVRIDx5b3R/1RTZhbAWHgvNCBaUL6HDNqE//FtkVHwu02jzU3JfhCb", - "j5FZhg4YQntgCcHCii5agntMRuCdj9Jg4uUIWOfDxp1pPjUFyG2tNgHYehRtWLqu1Vu9VJXwRHigmd72", - "LKu1dgAC4tFxwCMt8BFN3uy26jvsJH/yPXWYP/qZOh8iIu4jj9gBmrexSjg3gak/ag+s+RhXAer8Uwe1", - "8YdOa8L67oaSzsndtAQCtDLj5oecedobZ23I/TrCmp5NMJGtWcqiBrY3HopwGzhZvFDADSNulVPCqdA6", - "cxS3gSurErDy8UsAT66SA5JDTlFHEB1uWOz7bfHul7Dc4jlHLdLigN/dfcxv0QJ8rFsPqcaj60V0DkEP", - "OXJhkihpg2eXXbZ+3m5heGbiSR0U1monrhRIKsC3i59B046nHb4U2hNDEtZqU0Sbrdyh/H3+fgzYrbPw", - "cwpCXv3aA800EZy22I78CX+dMRgr3sBuigdNj4gIrxifBof6bVTrHXWmsafSgYaDs497V06hJkxJ12jl", - "4l7iEUN2A4TbI44Xz5cHLC0W6OSzNRjZC6jPqktfNo5daSPdrnwl1apRez61Tb0oEzWngB4zbkITcaWu", - "LavK6OUEAlJvRdev1uc6JFnXyEJubK2vNf7E6eIvHp+HWCwRNAWnsAlCxqNVGexyYCSgTW5F5wLe34sO", - "2GOiTJoND9agP7/5/vT/FGD1vsB/4eQi5S/zMNNQYx7mmFNZNsTvvUpwamvboG0SKQ3zy9F8C0s6/vrg", - "q5phlI9cTXsAALi/A6eaEay3wA8WlzQBr/KsqJvy0Khte81RAOMZOCXZ6X+CpyOnTe1FbZGduyKTKnJd", - "t6RKYDZt0v+mG7vzNHpH3BbyPPDzOE6Ml/N9/Jz/fpF6GQIoDV7Fle6B0mX03Rzy0++ATNC11NNFEmyC", - "Fdf63ZzFgvpc1NpvtPeqJvNdo64DWOwixr1UbqXErXSgjM4ZVByoyAgeBxP8OAcJ+3vmy/vztuZF9vEg", - "+a3uu2V6cBpdhfi0CF7gBQrI37utM8+WnjJiTIT4O6LTerUOYiuNIjXtRb49sSFpPOhKJwYjHIgvGA8K", - "L4sjVslA3WmOH0nkia8bewvEZpVmxE1dax5fiMGKq04z0/VOf9I6wIVb+vWVla4+Ut/0wlzZdy+CKvrg", - "o55BAztnGJOlv1F1pnkgHw5/s8A/C/rKh+JLJ7rKeL/+YtDQ9y6IRy+luwHVcWeaW66tXqJrMobJSC/+", - "fioeicd4af1dnOGfv4l/bvXy5tQaFDP/fir+Iv6Wt/vLu7/l7cBPGl3IkUV7XCWIgh0goIf5IyWXa54D", - "Rga8C2j0tK5W7nElNm0T9BYMKcG1FGsRu35cCadAVYJu0uIRLGYjIf4hrukE+3tcCZmcVT25utyVM3bK", - "2+btHTcpfTThvNcLPTuKi0V0TXdVgZs9ikphL0yj7sDKo6Yqg1P3aUEAy5n86Hrc8y7uFv+3qXNJC61L", - "d/JHAY6V5sD8a/OCPv9mCMuJe/LgdEs8RIZ+R884868u7PN9aEatGv1WuU9DadANuWCUA9dYoWvf4wYi", - "8STnZS8kCLdoUwwoShDcgHwm0IwGHEIAWk6dViYuPVgf7DA5MZvpCw78k7hZZFaSboe89nywthb/aH3o", - "S0u0RLRHgNlE1T3YpLuOzGBpp4g/YnV1NzR6nIkrmNONMvM7ygKsojz6uIDCDj5svXJHUom4OfxRUukx", - "1lS9E3FQC1A6vJ/hjE2huCX/NrTpBwoSE7K78OIddy6u4llA2wRZfuF8VF/L4Risa0vTZqbAKxNvaQgH", - "lsuAHp+KY4sSI5Dd6cQWoCoya5QD5W7LiDhcgD9NExqMgRl9kTYSFGm5VS+C2Cmx0m+VmYu4aPpfNsLY", - "oJh64U70GKUMJmWV7f3O1vAIpdOD/R08Em941BSPTZCa1OHH7y+HoXh2qwwGVPlb5UgbEyU1jAfaKudV", - "XdTBVLMflax/sqWj+SkZ3B6btl/0MRj8DdH7yotge/KEpLeoVu2acBwad1Le4SmyyprcOyyyGNwF3Q84", - "paznEiqgtPy9XAY/oaSQLFDzhUWxtniDNKiRNrVY21txLZ3QIENdKWViqG1NbgA+wJnGyGc0znWBR/g5", - "suHbltx0k2t4pykNYimNIAUetHjEEdLk6VQJma62KkWpJlerij07QLlinVjLtxqtZtcka4uIrfApimHg", - "ckDGhWooHZK1VFw5aYA+2Lc8POvk0XZZKxMwhg+mq80qBcbO0T91cQ2gpsVV7BPFrC77/qFfRbcrFTuF", - "e8GiDkCh4swMRiWFPt/y5KVLreqSX/4WwLLUW1mMT30TZVN2vuzC1PvRYrkwjsPrENU1sgMfwrvGsDMg", - "GAzrjj/hIHNy8QaFy+NOeGN8047jA7hTiK5GQCIFZqDgzRHdZWie2MbFRfR2Ropn9lS2YW2dqk+vdrAY", - "3ShH0Drq5n/VAbF08RAKLpa2nQpvMe3mitZIbX33cxGRucyYcSNyL5q2PKRzMO6XXZPKeuTYPZ2OAoaw", - "jqo04RPPZ03VaVlEIp0ClTbr3fauK8Zx32thXeaSvYuL7Se2psveEJQPHduMSyHlvMSECWgnF48Iq9FN", - "86bq1DmPL8STpHIih17TDx3LVt8aRNh6Qb4bBbiTr5HvEU8mRDmM+XWfVB0YE30nSjvdKN5ACOdULovn", - "hg/FlfSqEq2JLsU1050uTn1q4Hg9sFXG77WgdTISTSOLK+ctou7kVaNE4fBMmRxGMB+BpDjVMRoNDvwI", - "l4eHdnzKqj5ZLt/TSP+m5JeDAvVHCBHAVdyN8z7Cf1B7usRRgy+DckDF/VxEf8zRXg88Aqv8YZ5jI0nN", - "6eaiG7IcegzB31PcIIYMcEaXNGn4ouoCtei4ofv7r61qFTFE+HccPzEy3ZSA43G138siDkB3WBg5yCJO", - "GtB+skFfc5KqV05dF88jhmcA1eH1GPhoR0Ah1wK+eeXy50vgisf67Fr7pXQFaCN/xG8Xvl2tKOMKjVSm", - "5eh9W5hozFeB7+NcLdknJroixmzr7FWjSp7iGffmg91ueZOzx5T9ik917ajNvtlHgbYw2v8dX4HvBlg0", - "Yl6ZYkdOBrVodPnOiLDoGqn6OJA4JevdBCTw3d7VsRN24VShlad1hu8VZerIovl2s5FuJx7B6znp5PEV", - "vzgXwbXqcXnAaA2a2rz4fpH4k+npDw5Nt1PduhL29eEfwVYlRB/hVj7V0kl8JY2aMOfVTl6HImv0xrUQ", - "XqEbJSTpNIDZZi4GzFy01Wymbw1RfibqY2Cia5Gq944Tktf+rTa1vUUnMvww+WdyN0JRhp8o3XTzOfHn", - "kWZ0Rj8UGjAqOTJ5iduxW2WA5L5ltgDtvvDNEbsY11R1YCyDv+Prxxug/baRu8Wku+hKhwXGUE2+jZ+W", - "cu4k6yQS07VERhPjunviywV5eGFE9koFYWySX+7ieDyADzWr+mvM5pwvrgg45TZ6IjlbrQLDZMIFAnm4", - "WteZywNxSlF/LZFRoTteTOQiKoOWlDr6rVzuxMpJkLl9u8T4yculU8qI13gV90WGnD8IoSwHQc/vTkH5", - "o+Z+54PabJ26Vk6ZpfKQEibiLg574sUlNhKX3OMQc0t+Tv0RW7NcqyXYJxOqhF4AuWtNt7ynbbAbChqx", - "1+JnBz/o7NJvEmQycSlq8XC+5FYFO4r8axr6sPsUo0tyn+Ldz0BZxB+6Oz+N8m/ygAL1Llnq4flAwYHp", - "gioKnKuFDGIdwvb87IwiJSEsALQgUjdGBbG2PuALdU7voUN6cDb/OAfIzkbKgMU1HLR5vCKl1Riesq11", - "WMRLqIzW8S1FP7jWJIfyLh8ZqetdawSqCGErqrLwSbHChKggZ+UOzMYKnFCZE36AhDc8tQVN7ficOHuQ", - "yqmNDVOvtnYx6ZnH7OL+vaBG3ZaQxhCdXnx8SWrnoWWx01sinzcAO316bNIwxr1uPSNIJjjsSwk2XHE1", - "RMc9qDwl+O7Zl2ngl2lW98WeefySbVd/JtMb+VR4CWQktkAmJ9+O4k0wmOQhIAW7tM2EW/1dTpCTuAJQ", - "cHHOW1LAUvKNabex6P4TY62KfSdvyDC+afdnvS2G4sRxQfPYNo1olFmFdS8kZ0x7j81ly+2qflJbRmRc", - "BwGLJ3dwW3wpHLHdm1yi5HE9iBig1MwABM6YU8ttUK7jCrbSeY4Xx7+dWtqVgcilcYhbJW7UjnLCcBhn", - "ydmJEmKVdyPLmIUKnSoSf0Si+dEK9h4+fzjgXcNgTDMrbcXrxGD0J/2zYXI6ppsD2lt1jnxR7UQt0LRk", - "Ot0j5BJax2x3hz36pog+qp64aS+41N/o7XYiLcR97syJQGbiwSHBRTmfA2svFz13qik8PsLtNXdMG2dN", - "HbkFR8MdmYB4MqQyoBnVi2CjijVDbB280Abyb2rYQMy9w638Bb5lrTINAAJuOWtLXD/6p33s4pM/XXnl", - "5C8q69op7wdrPnptndHT2EDpvdDoCIL11ApRW/IpTO8TKuHnx6F1l3VpmLvDcKqJ/My0VxsdWB3Xpd45", - "73RM0Y31MWWJZghVBFbSOgFThclllzKoFcblBR0aVQmSaCqKaYHvgfgW4df3CSslpSvmFi3wfSc+Ojqv", - "tU9rFU4eTxl82fuePyEgZhTMB7WNdmRgGNEiginkjO1NIJcdO4sHbMysmiWLBw9zpM89EetB1uXs4XfU", - "e/bk+zhQ9uwyjnl0cvt74Ob+HLsZBsTtLnq7jnLwRqdXos0DPnpAeUqkuHQFXgIT+qzLNTVOjVBMQpWY", - "O+iwFtoEm/wUgnIbbSSkuMI8VHdJVTTBue+RP+IUDy0Ofu9d4EabH5FVzD13xzPb26wsQ+yd4nKt6rYp", - "TK2Wu4W9XmysKUXSfSOCFb/7hj2PsFGzE557i+5qKKezBI5tTriMRS13AvOEWRcwQbYJaw/GaXSZuNV+", - "wiaNYuWh6yuu6Tk2xvQSbeEoPYEl/PZ3VVQkUEIimKFdygbVBzAjXKER0Ee2wn05Ccf3jDZtUBMz+P0f", - "LibGIHMifSy2ADa8C6BVefiJ++zNgE2J5spEpuFyiVS9rMhU7wKYjo+/cQ/WCMCluNawLkDoLve6LKte", - "DsQzbJ3dbMPe1fe8diiaLV86wZvmdOW0up7I3xSaiQsSXwHPjoujZQVeVnlNt0rd1HI3ocuFN0IKaJSh", - "RTxVlXhpDRwkXFbczN4BOkqu+YXmULKZH6mTi3vJWd8xPApoT7/eA+htG7brH3lp9UIzYm542oBICzIY", - "8kFP563q07CEIt2Nlml9Eorvo5LPI/mJzAUPWMs4Eezc9NQ13W7Hbsp3wX6C+5phQ/YHdEiUkG8DnpSJ", - "MMB4I9/pDUz1d98gWOiPbz49aU0D/fZ32UBPilQqUcP00e//cPCj6UooAJWU+Lc7y05dt57fTMWpTtGM", - "yW73U4QDV/j0YT+8uQMa8KkP9wGF/+DE9Y9Z8cAQI/klPINoT+/pG7QHQx7UT6fnl5MtY49XzmCPeKLF", - "zch8C+8TzIkmkoVfy5IWmd6iosopBa2SB7HLTOzRX+7Eix+eP/2ul/R5GPLzkZqjt7SmX/eyAqxPIXgn", - "22WyV8C0WP8YsxEqxc4KlKTIh7Qu0W67WhRH5DSYkj3GE35lPSpvBobAOE1f0UH5hkKgnbqmFK3X/gw0", - "qGfQHJIskuj34Qy+O3tvPtzV/lfN4t5OvNSrVYnbC60zC2Xqc85XySZKZepTe30Kbxl95jEFGoBb9nVq", - "NnpWyJqDlSm5LkexyBvVeSezfuy8F61GzzKvPQ50Vk6VAtfm6DR73iFFbzbXWI0sizqg2wUz/t5gFs15", - "526br1t0Hqn5eRDaIOWSpvsMiQefosgbX6m1ZieWvimz6q2V/dRiVmyaM3nG6iC0iRAiz2BK35OGTWiF", - "DnwGqH0WNBFJ1KOuY062Dd49tNA8XApggSuBKGn4YwF/4JBwdJ2Q262SLsVWdKMjPQAeMiaogXSHRAMj", - "38WTmVUJx2bVLA0yq2ZpVVwUws2qWcKxFBBE5/XmSA1QpKNvCN9fpjkMXrxpnXlu6sILa5tnNL/Bm6f+", - "5gee7fAbnvzg8etsLcO+4tIGz7/HlR5QDhX0QGbWuwMyYpAT244MHHQEuAxypZ6GoDbbwp00lQ4TKxxS", - "Evw8a3TM7oIVhNiRTpa5PfaAS5b4YXkgfosoumyUNKpetFugBFZ0b8FbAA90zHaGTafSl9NnB6IHvqNW", - "+a2TXNaYAICVbNlYr2qxU5NOcnvqL2YJLTTcYQh9HJE+Q/I4KjaDgE2SM39VXKk223Yqeoe/80zTaBN9", - "lnITByf3ja1yTExwbLQQAKlaYzCy51JaJ/5oDhix7QXMrsT5TRWDeLOO+LRgSxw27IDieZY6iJUaRjt3", - "uXv9XfTerKo+zyKXtBcbXeNdORe6btQ5l/ypopmgmyL75xE7lU5D9wH0yssgtpLIuoOorA7Bz7uf8VZJ", - "0Wrz3rno2hEoUjNM445npLYqpdAlxQrHRGFFhHTFUgmX3inmrBZjLT4XV4zLi/6s9Sw74ECD0kSPrblI", - "SDosq5g9jUUYs0ffd7PIH7+MM8offpfNLn/+jGb65+1Bo0ASNI/1z4qCW9TcZ+QondhJCk1nppQ1aFX2", - "bjk+gx4bHeIHE1MIJZdjQuYFfDrhjEBXGOdLL0mZqLzg88XNCFs1BhEubxCFAc+6sqF59NBxgfh56etS", - "ugtKhl6YHSvTqNj1dkte6SR6wAkuVQnpsi9XwjY1Obbhm1SR8eiJD/NVF+ZeXy3Ql+XIHG5ZSeXj0zFC", - "OOZiqmTp03zvlBfL1jmqhzaOtcv6ZHXiBN5s2b9j0YVxHO0O4gtxD/exvP8ZOcoPVQknUmlell1b0mIP", - "vGOqLk82NkiVceBVVGdx6in2daYP4RPVXHO2+p5dsTuVDN4FxksUbk14nJDX2NuEjr3qoEfjIvT3Wl2X", - "cNB7tcjOUNGQ7e6qOyjUjS/Xy8U0CjKtFEVZyM2wsgnGsl+inq9SzOfeYupUT2Xqy6j6T7u50iXidRkp", - "EueFilOAYYWxosEKm3QyiEeQg8OCpI5rpKRtse7oTfn/cGoHHaAy+GcUY0QNslNZ9Yl7f487itmnDUOc", - "HIa/DG+DDrTl7R7TgeLtRF4br5UsWK0ndU9e/ZqiR7qIoqiDQida6pckAYhKOUqlVEhQW5r0G3INLzlg", - "h/WCq5KOZw1xA3gHUQEkykNRY/Q9Oe/rIIxSdSr/VDRFFXP+TwdIxLfdcMgxkkSEy4g4O+rYOs3xJf1u", - "Wfu0DmHrBTXqIpexy3FRYxx5jZWtlspxRKIStd1Ibe7C2r/hzsC0KJc3ikoFBnUufrLIBVbiJ4DhjwBA", - "/v1SLtfaqKdtWFfikqL84AfX67FOvB7ddtMcFzKAaacz+CeIlXHG35QQpp6qWDFISMFCOqi34Bv611e9", - "kHEsi4zVta+ptk7ydqRvoqGiUOF/GC7Y7UMXFrA/kDsq2OIMT7jQt8uyODILRuJVp4OUISgDXYqdCudA", - "TrvEQRh1t7i2bkHaN+sERX96i2lJHmEHFB5DZWPMLq6/G9g/pmQlwAZ2qUq6tKI4OY4zdkjsKYOkDmLT", - "hs7G8CrmkJFXWXlBJWuxUoEuAr0ysvEp12tZw3AlvVpwceUxxKfjF0hzsb+SCKlTpWeJlLyDWWI6vqjF", - "0jYlt6kX7IDIouifX0S3g61sVAhYoo9rwEm22GMOJSmwQ4AQ3U1Z1CK5C1jDsc64L8AXoJ/mypbv9YeI", - "H3kYHROXk+ALCTkc7cWt1Eh8Uqr/jAOq4l/oWlEDZAYjiCsFjZ3a2LdT2T5YiyWnVICZlov0gCk5Rpdz", - "o6fYkhNZS+6gLoOl7FOVHSJGU35Bo0DtfTvIOYQBBvkn+3alS0tSTB5iWdmyLwR9Sh2Lb6OL5q+t9InW", - "FyOuhpWIHAE0JgcKlo59EXpZkqJDvGmWOSp9SDkQpokPwxXDRFipHiOXTbex0QSXEgwzpdJmlVDBmqXK", - "cpHgMfMUQcrVeWCz1qq5A0GjNRzjdDTeCVrZRt4on9W+ow86HieGDwSfFszuxoHG9ZO7coDmdJDNKQ7f", - "o51+Ugef6EtOQSKfLIhPhm+jmobWiQ23Lf5grb310faFQfaTiA0CA1wHCzJT71vFpks1ptGRm9GBI5Go", - "gwH+RLrHL3nJfLPpMK3Dpw8Wh/NSk7xAexcd5xKtirpymisCk32wOp4GGiQPrs4R7050bWtdWABTMKVA", - "d77Hq8QgVni2xZp4j1IXWOQv/vEfUB51KzGugOEcIyzq5OALy3z18+s3e5U90+mPgUHDHSlPHl91B4S8", - "3SlUYcTcUVoY6XPCdw6ncNuooDApXecGkTBV+QSYCuvWatPGxpqWSkxfL93AXDyNJb+ARhk7mg7O08/F", - "i5CSH6GRla4O0SXMqEQ5yUmVtVmAIh1dk5KVPaIbZkW4su/SA5RkczNthADV/cL1He1tL+sd0o9nXR/5", - "w9jbfpHLUiRVUD0uBCSsG7UNoDULKRdgdANGqdNJ46mWG2wrRbMSMAkfMeEfAIl6x5WXsuIxA08nodPk", - "npe4XLo/iAO7iH5f4xNadYbOdOGAyBKfVp1OCDEEjfIjyaJHbFXjFSq8L0THTV6AqNN1owMJwgaxMIk6", - "F/EW5GYpNWNHOoekUntOsncrd/S5WsClmAby6eZgz4p0McUO86s4dtFjivqTGTNNXdfwPz28mAYcKZty", - "axwlEkQayy/544ssAi/Oggd1LSSepT8WWy6Ke6XCrVJGUAJJco/Bs48b1gW/DHJIwvjETXMcyAXTgWA7", - "kXN0sjuTWyRqKV3ZSF7ljxbcCRfLJOJy0eFg9OSCxYlREQS6poZmSrJRXjDKGbtgfxLuipWTqMpM7sLH", - "WAL7oE0P6HdkWAZmsKL1ME6JPEmyhoiosyLrXs36G9B12cH/SOoHWpeBITI9Yitk+jszQXaf4YxeJTAM", - "XgwevkyASY++yyHUa6jqQrv+w5/sU4ZdevQ0ArHf1w8EzP7DpwDU1xGm2dRlvXtjXzJoh1O47EBcrsuE", - "4nt5v++2Ka1/GvvqHo1A0/oONjgjEqQXRymHez6KY1XxKAVVSuuYDo9RR2mOJ8MZng8UoT0nOARJcsHr", - "5ISq7zSHPHHkDTLTU9mJ2tZ2oYtlS0ZSzpufv/t5vqmxBkd/tNyf5E6c7HSkw/dT9zBrH+QmzSs10lic", - "958qVyaJRysVADtitobk0rK0291jSCLb9R1JYEz+nVXCZMXqI/q/e7dIsZ9RS0dF3mAjH1+Mrn/pVC4j", - "sK1Ih8iZRtYCPdEhRTHqyCLbgvvMKsuwVpvkRvL07iBfTIScfj+UWFBPnG/EeAeoNd9GF6IvTUVf5A7M", - "d55vAvS9aouwN0Yu0ie16bD/TNmay1lRw5llM5rObRK1/ntuvqEcPHGz5dSrp1vva2emLAjPupSqg8Jz", - "k7JjVCY5cr0GSULGiIzzTslyCj301OF8PuSEtywmmEjqhS2s0LY9RgvGm0gu0NyhPktW+7BUB8Cp0sKd", - "SovpVeG4JhGElGXouYyYXqeFHJ7/AD0Zm3AecWmT23ffMA7gnjlGA+tSdK7WvVA8zh+HxDtTSTX6JsVB", - "1Fb5ufjJhnG04kengH2TscPYhMgbj2zdMWlNp2OJLkkLOLpEuQiD9lFbM4hOzMVRVixNAOBOIYo0BWwx", - "F7/wpcxutAHNSTRfuPpDynfXKWCm7v656AVNdRP8qylNcX9kYSTpcpCkCLAHRF1tfFCyhiZ0vXK2k84l", - "P96d50k8RkuXTDcJrMjeGs6gUHc1MfBvWjXK8THHgQwRNDqIK7W0BIdMy8Y9/XVGCdfwT/ypzgU9wr7o", - "0V9n1WBMIfPriQJQxZu81M74/ioB98PEKX7DarPCOd4fDD/AZ4ipT3Snd/niXkV/I92LosG1ThnM7+yn", - "c7cCX6N8ddmQUyTvl+MiXxmfiNnLY5r4Hq7ocOOjsFaFenq1Avk1cJbKvaF8POh33RdHZyzghWeDFReu", - "5Oal2lwpt6fw/gHaGUP/ZeMtFsuhQzJK3XRMlszYMbRIIVBKsqc45n+w1wJTEXzz5Alo3JxcBuV8JVqj", - "f21J8ZN9eCfC/QZpM0/B3hLVcS0qBT1ZLZxtlNjff3kjYgDynqi9eFyhBvx4O6IO/Hh+pEcCDjlvdd3v", - "m9olJ0AbBnDQrPaHGzt7e7DVKKVW42f85d5pwfGezLVRNKs8HRAvpmgQTAR3CxdTSbdPOZ64SHhtbcdT", - "Ue+0DwcqDAwcacgJKUq+MjD+2Qk7UkKJ43DD1hZLhh7CC5547P9vEyuO5UcHzL6l/N3Si3HNTujwhDJF", - "mUACc3ITmMzvxx9dtw7BBhTBF+8Y8oSeYIkgfo033CjplA9irWTNpY/fqjS/ghF7XEHjKDYsThxZPph2", - "55sL+4oVRtHBk6uCRehwwuXDdCZJlxaTf0cATG3YxJEBcbH1JUdf1eTG4yyqUmJdAQqYar1Ps4dTs1zL", - "5AgrDUsz2mN83wQeT0dmH2sSx8GDJUbkWMAV4cTOyAV/z73x08eledo/q15AXsfP8Oel2ZIn+WiuTv0D", - "nftLtGfX8wb3lEEBBU6sIhOzOMvoWC63aGNQaJ6rxdKpWgef1G7JbISeRaDf4rzsMiI5egYCn9C5RMf5", - "FQ9UvyDZhB8ZlTHyJCVzYMDx7hY0RV/2INsqpE5io4jJ4JufakMBiq0pNd7maF9q3KVfcMyDtDdbfTfP", - "ya3ntFMTEXmYGCvddijccCEBEnpSrEE5yCASwtYrvz+OwBfyTZqgV06+1WE34Swo27ocYbS0tXp3+LRw", - "D7F91RtyEmK8DaMj08irEud7ubaOxOHkdoV4UU55rzdTDrO0kyd8HnqIatsrJOLaAD8bBuX+riRGlbcm", - "pBuSx6UjwDkKVfD7DwzOWlDL4w8KTGjcaevrSgR7o4yvotYCPaC2yi2xKqxXjVqS6XUjMft6+agXqz08", - "3cByBb7cA6hpeBCwp2M7+htCuVxwIPbmWSoAe+r/kH2lmiGrcGPsraFvRkUOELl4vQzVMoaWhDJ5K3el", - "nQXCG1yrKnKYihkQYA2pdki0aSffNu0Tn0sWAnJoK9/LMdX2HrEQX8WqHFF3ggn6sPuJmgmfsKLF0YUn", - "qpnJqg0ttrHc0D7KPa5P9DH1K4ozGEK5ov2eQo8/4/0wRpJ7A2ywnqMLb8ScQ5n1dYOZqUMLH98ipod1", - "CyfL6Vk182St6CXf6mZY0HsU5LcsK2mn5YjKCIqezFToV8xow3rY0Tmora+ifIdX+hziK6gUMmrjqlwh", - "SO4OPuoRWa8Y/XGwtyzmC+xnyWXigrioPUmds3G0T/4jVJyxqyyKOkpUa8KQMVkGfuZPUjb9Qr3NHuze", - "F2zfK3sKD0/BteQ01hE+xdqCys3OgbSg5k5tj5cx4zZeBrW9W6F6GqeIadzn67ZQ4wX3bKriwkfp3OJG", - "7hfgC0HtdURIFR0CXWvKBHaSiNH+lhjUqDbgmZ54RuOjc4V10MQA8KLd6rgQdKYTnY1Tox0zA3zPb4fX", - "dGCLL0NRpEFT5QSbi/2O007AoamyMn6AYCfCr+X2jlXJY2aLaWMLVxVzXAPWh5RDB4V/TuNg3Q1Zy8Lj", - "FDJ7t1DZXlKVwkz34VPJe5JDCjCsCWkbuCyLn2NIX1xMSC5y7K2SJWHBuVBV+V6TlHwkecVjpS7+sJ/3", - "gafRhXk+YAYIBCH6FP2SRu2eda5Y3TP2xeoeZM5Y3cPkG9Q9yv2muqf9TBC89MWU3irLkuKT0WsI/uhp", - "fixKl88xDpU5FGRTy87AvuOLVH/sZZTV4LfX8XCknFrEQVrHrCqdFVKZP66IuMHbrXSyaVQDKgbqIl2K", - "8czn7iFZnb94+Lub+pwjZXzoKjBI5gcq9gNONYQGzbqJFO7cqVQGr1uOqaV+kDMISm7OKd07eLnjl8ke", - "zBl5krkTy5Gxr0AVa08ntoRtMn4tHdUYv7LS1blTMuc1I7zJpnKH0tOZ3ehuVnde89H2o3Ox2obT31BL", - "DtQ04hlI+ZVYKbAldG+tEU87uT9uHvsRE2YZ8QxVBdjFwIKNMfyMd71colHBc1+2CXGp5CegtnFJ8XCz", - "2zNv64qqlZUQGz4hHL7zbR/5seG2RWQuuHcg/isfS211XvNYcevQXPMDxzEydGo+2cz3ZILuY1xu0bug", - "3Y1bDjPLXzP64Ou4EjinRGsS/cBT9zHYsaf+Qjz6QJTvZQKddho5dn4f9pF48hErFVvcI27c3YTddVa6", - "cDg7xZ6Kj6PxbzQFiQ88zBdMBWLyCCLp8Cu9YbV8UWzd9lT+eWKS+5oLBgDBaadihmNYfMCsbNdofmS2", - "HXMgoN3AeU5BP38yfwLD2q0ycqtn57PfzZ/MfweLlWGNoMOMQ7LeaHO2TTU18c3W+tI5Q6VfTKmvIVsb", - "V2Dulb2ETCQp4gImdgrZOP2JwLqO6R7wN/FrCgThr7FezE4FUaulxkxmv2BIB1kd6AMKhpcmLzxJxKHi", - "nK2/fyJYFwhnAvAFW72oobo9TONVtuBqFj1xcPG/ffKEzMomcAQhVN5kFc7ZP7ioGBGto6XkbrwCb/ah", - "KhSKojI0YqscAWYOH/7+yZOpkdIazriQFfab7XHnO7+iZCF9sPxJBc7N9ZHwOCDNwAiFJV9ilQaxVrJh", - "d2c0UczH68Dnp8vMDjK1nr7B5AGX1R/ow4cDiZ56CZzm1L6YrfBSlQ038VuEk1MyKsGGzeSK05n0QUMa", - "xTF0UIf8R7bmPxRgOlLHN+OX25U3Q+c2j4fs23sdsqvGXu0hnpfBOoVEC71Okei1XlH9aXYOJfYdTPvJ", - "JVDeUnty9Ae6Aa9qFdCa2qk6MAsTosOG0gaLVz/9qRL/89XzP1XiTy++F9ZBMrlXc/E0UOG834uX+o8k", - "DAyxI6Zn34sUOK2zlb7ub0gynVxpIzGr/Pi2o0//sVWr+367Nff+9FZdbe/67RFo+80nQ1uE/BS2AhbV", - "EGx9dWdUrWbffvO7+yL22Xv470X9YR+9TTiz90D/myHOeBMBkieejmzVZRpnEOEh58399g7bRZIduTDM", - "zv/yfqZhPI45IVZ8Rns4G2Jzla1puIK/RTQYpKbM8GBosklJK6l+PvF7pNMglUfrubjcS7k8z2o0YSEF", - "LyhBJWfCJjcuJpBdxX+aTbKAdsX0ZPp82+x6H2MY9y4KryjY6hqdPTDgiSxDsD9/BJ71B8vuYsqxb3w3", - "LCQvNmi3ybNxJq0z9LyGz53aNnLJn4L2FzOpl2guJ+ekqQ+P0DdPvhmD+ZKyQ6XAiw7oMc/dR9xlca/V", - "O7WcvtJeU2Rw8q2Em4z35aVcCun5L4hwWmOkB1U9+Tvlzcd3pzDE3zGnAeWaQzWdtVuIRSKPA9KdXSnp", - "0BvnRiXzH/ZDun8j/vj/vn6+ePPzfz7/CQfJjIIcNlaC+/N3apkB/dMzQNQ5DPO5uZ9u5NcoSUxRo7h9", - "VN/xnQ6LJWYB9OL0m+j67lEFBJqzG900qhY6iiO/+2TzzQhZf5I/WXJRY9TSPp46DpPSIZYblkvwyGhU", - "zQk+eEOjquS3USbsPvOpq6jqgTO7Q++VwnnwO0PnocSsv6aSLoKdxZKTsdxuQSX1rLFtLaAH0i/fYgRo", - "l2xeD7TBofUZOXoW6V09Ik/sR9/1Mmb4LxWTlktYwENiOg5wFKZ/OwVBVX8CyoWJPq6VgzIp/LPPvJSy", - "2jScXMGpZbCgFDRcq2hwJeE1VRFdWv0TszSIIB26IzDBoUQYUVsPGzQXKOLGbBg5fg4yfcFXiIbjjfxT", - "3Mg3vKi7SbUw2U/Cwki3XOu3D8WmdDt2N1ZlQoqe2FwBjuqF3UXN1LV1d9/gp8ul2gbO31J91Ea/aksb", - "fcypvece3++4YvX9e2BBPK6Y+MBPHktSCp2icyQ1nQtUpeAfVIVLc7Se+vVC1DLIKDo/f8vVxP7n5c8/", - "zenPWNzhR+nDKT45ffGdeMQ0mN792iq3EwlJH2N4KHJyu+6WwBQmcUa/UMEiVO9WlJIJLZEck6l4ZKeE", - "R+YR+dRGyfr/QoyOX8QO8yAVqluKJZKohhEvA7sA++WtUU6sLPdhaWAsPVbgdqiAP3UxKx9EulK6o9iD", - "1KwqYdV09mLuEyHadZmMzh/fVVb8eJIqTHwKQC19l1x1gJwcIK0gXRAKn1JO8P65O0hJCUXp0484RJis", - "a/IMvYC3GC3hBy4o4nvdBOIfnGOmxRrFJyDYni8buiYzRoMDWgm/IKQNh5tArsEW9JIo3HkDP2Lvo7vD", - "cYwNrohr5h+BFJ/AWIAjTsRtjZDopQxLFnPUxidTtnYpvtjPxXfkcIoRPJjmCxvPR1h0RgL1KSqOpyW/", - "P+m3pMuk5qpO7sdwrWpIm9dJ52AOAkcommPMdcZZV2MtKxYPo9U5PqWSYXklNHhNea1lEweAKNxixbc3", - "sXQ4KB84UByyskQS2+V1lg0meeoW1IXxRzAOI+aTMwrPohTuT1NI842J6loTbAvSO/gmkAsC+f4nMCId", - "p9S9cUpVB3BRK7iBei4NCWg0zxSH1YMyOTwURWEqL/YUN/5hJARE69cMTc498Zl1q5j2fIKnjYhyH8Xq", - "k2/v1PoP96XyZz3IlA/nU9aJ5UX7iDZo8kHx7RXbIuciNnZU2jqvwgpNo+oMHaAx5Ivq5wCGmSyPXhZ9", - "4JRoTcTZEqIRBtTxonhgTKsfQu/y6ak4ICAHgiXa/PVi4XuY4gFjQLf8B1RyZTAuwxQm2qnYuxvxYQRX", - "Asv99Ot9yJ7V2sMhxWP+IONWE+TjOxpYjVOCdncNnm66z0mFhV6LiXgYSwnzHet0ISqDyo5CD7VTt1z+", - "IJbCM5i1vKkvuOuUWyMK3KQmk6GbC8g8bSjRF15AR1++FO7xFvKJnn+uI7pR+47lS/WwjhDKTSqas6QL", - "faeHkncCz/MhXBJSSNVn90dQ7hDtZ+DcV/25UWcxdnDaoeQ2C2bJNwVjkm7lbi4o0hB+DyINycukY/ZN", - "Yhduku66FGxYiaBoIB0wIbgG6w4GE3pKCNbsUgljtPG1znBza6YCHZlnx+zZE04uTwEaD4NI2PV/SRQq", - "+FbtP84nfuBHQ8UitGfDLmAR60ifcwico6xdMeU7usF0NXkwCk+HeXKSou4xwzo/qRWlJ2ClWYiZK3g+", - "0aACqcQoS+GUxuISuv5UXmLHxfRkIx7LHI78lD586G7wgTEZRaveIA9zAvIh4Pfnlub6cDwCbp/mWJy9", - "51/MARMmjvfhO3w+2odDanX6rH4gFjVN/Z6mlRKR/WpR7cm/EKrdV/u7UWccTn6aInKm7/7QC+Af0PA9", - "8fylbWel4ksOYn+Ibe8N8V/yrr22y/1O2d9jgwdcJw1QWOgvMQHMAE2cXq2D2EqjyBN/nwdzdIroMklR", - "WbvohtX1dZIKBFYcdO9EkFdFZ4YOJp8e5TJwfD5cm9yDzOkTMeVzkhUwkR2y0BY4QfiMubK+wanCUEoK", - "qrxd24aqQGEJK6x5hObXWBzK/8c3J2GdJ8nPDAD806tf0XibveFQ5Fh7VZn4UnvOsvN4Ll7BJNDB7GqH", - "1YgiNuI0k3EZupcxBmyKe/xRyXqvRXVge6LePpH5kyvjdl1t5DvKuvj7J0+q/TkY//aA6IwAeYWpBsYo", - "/WeM0MG587+P+AITv38C5aGa1qNLJrzk6iRdAZfCjs5LeBs9Rvd45KOzaXK+j6ajEjZzuv5Uo0XS41hl", - "uZA3kEXoVI8zrzADD+OgXDeOanyy4h0TmIDjKiJ/Ae9e0sc/kgn7IYggj3AXI81vP51gDdDmethTNLEH", - "/xygtwDEYIV1CbZYUPhj7mhEKGODmqaDU3dlhz5c+gGryGExVvYT3HEavr5pPq0xVQrrqbE3GJUdc0ys", - "FCzZNn4+SaJ+slSl++GF2zjasYItwnU+CfGz9/DfUZJWGvnLS1k05/sZAuLyGbvvfvfGwo/0+RCznlLN", - "BXJaj4XcuLygqSP/T0lT34VpjLpUnzF8sk8SjtSY8ASHuJVn5PKHNKXgZg6yUNI6ZlXa8PKqqP4zRSY4", - "GRTl+8Ojrq93BSWrYfcMtK2QCztcVFNS1jgh2cOQ/FLis/+C8tZWGnWahK69MkuuJyfZRVNpTVRMm4H8", - "Qnrr7JsdZQdrDd7rGIkCr3LeYIfm8qxLsKclnoHO8VIaAfmSSRXe7OLIS+ljoQK8SaxtBK3jqoRMlyq8", - "kkY9pOTU9f8FHcA36oyL2pxiYOzeeGdq+BrbfSRmy7rWlFrhVS8/wTGlusbx/eOKSeifkdcqHxEW4C8c", - "4g1zzrQ6Ya8Jp9Z6tSbv9V+xXY8usug9DS4g+69io88SMU+DHUPtnzZN1B0coxmPPT/QKaDev4x/UwLa", - "tIsTA+ojjlgE9dl7/nXAEySH9wPdHQfW3V/zp2b2EhTux++VwHkm21qH07yazoPNozqgLsapZKV6MNk7", - "sC1kpKPbqCsdVq4Tf4IqZeUDFwCLmaZJAYBDgK3uei7oDkjKwDlf/VXOnUoTZ5Wyg+edx7rca1ljwGVy", - "skzNO79mLOhiHURr2E2cCCZA8lWs1rfSoZeif3SzPoXPUmmZB6UraZTPzJ0dOGGRQbsvdbmvmrJ4eChF", - "6tdxegY5YGNOdnjoB6gYHXh9F0uMaiD0szT9ExN72HdkiqhKBVj/G1e/FlyFOddto/aL+RmSxPaV8NYa", - "5QMhCVUKRwk/NsmcJtKjktfEHVwl0mQ/i5sEj3a0wB9n93Xd81OOlsQheiHTxPneGbH2eDmxL6Xs30bp", - "7Pc3vZD1ipxCuNVDWem5+y/iDJKwZZr3TUD6okce7ep7Ba032OJznDEKiDjufHVEiCsLM9NFZOdf6sxl", - "VTuzurKpNGu6f7slD+vNYntQyHM50VRD0kdrkXX9ipkVFw+EMwwHHWOQZMjeUz7rvJoz9krT0UVnZ1oQ", - "7uLDHOmsTuy/X6zOoYPMReAmr208grDRWX03ZAqtTclGp1FMmxi2ztneR5I1VqF7QEYK+98TWeExY4gH", - "vPfiWjZedSJWoc6dsREQ/0KSOGxyR7K/IJdAFUkxTDAvlF8JhyxA9GGAZ9GKnIrv96TnLoSxV6Uvch6D", - "AMZOdtaNipmLe5rItfRd4iMMdSjGnksXUg3BB6JVqeLdf4cVHkvYWJA8e08/AOOvtQFs8mfvtanVuw/H", - "4X38/k5oX5VzdeD44BBmPSrVk7UFxzjxsUks9vAEc0yP54TzP2ZCPbeYA45sMq+LKOvaKYzxkXFSlDO+", - "tibOF73fvTJ1F/+QlVi04lq/ExbDpPXKWI6rKvu90QiXHL/+IO5v2RBfJkyGNBRTx4lA+tnu/SRTnr2P", - "P0e+CCXHglysu2BmTodYPlr4IEuyWx2dEqqyK3kuvX1ZB4cOGJ9EXfY6ZsrroIYOeJhsnm3rCmbdBpU5", - "SEGVnaMlYPZV/9ok4CefTQL+7NJv9MA4e8+/DhiKooPHA8LoGN8ynuxDnZwIivvxqCWYnrFHz3EX9T0n", - "MMWgPqVaSIoSA3DnJ5HDJH51LU1tr6/Fo5WVTYWp3dk3yQcZFDyRtaCsar2QY3S3aZR/DE4TitNioHWb", - "Goduuygx4IaL1gLFkKTz4dfWdEwqsq3MDSceOE6ylMejip8zzVB1V8RGNVw2yTZ1t/5ylk/cphzNHyAP", - "Hw3y9bpuRjjjNt5KVnLc46a6L8tbPEJYDcO12y9ziJ7HunFc2Jhcf0cI9CJOcpJSft6tTEDDfUxJab7s", - "TvY8vz/3Rl7GyFYU+xDDUyKh5KIcVSQZ5QLimeKumT4lUor9aB+94KuhB/mvrWpVKgawjOWeODQbwyo6", - "n3JrGzQuoIJSdp6eEygHXvLsDf7v6muO4F+PCNXXJskHqRujwl6FZKrsBw4cJ7HCKX4nDNbK6oX7U/Q9", - "lviLKZlZ4AVltaIaqGSXMjYZpSrhbaoPnF+7kBV6KY3wekVPDWYaNllBVc2piOQVKD4NK+pxgqUbFXSg", - "9PZB1aA8xKQHe43SCsB23t8Rf+PP3sN/BzjfpMB/sBVMK6gy5dQnT+SKK78fo9sH3hnWtzuOpN9n1Cl6", - "/sp6yppH1fuS0Qhmk5tqlTtnPaxPxfigx2hqjwE+fM3DK+h1ovhYL9QIyQ/VSCIeO7rq40GhNtGFuCsx", - "Nyb4pfMDy3tj/4iwfRjqjn3DMHeh799OeEFYT5yGYz/hCNXw1ZLkHg6zd8UkhX6e5aw3uY0yGSYfkYMb", - "+sOhnbCuRGvoFwKjNcHJ5Q08h3mpJSLRfKUD6hbVY65EiUUlYREyS3YITIVbqdMr6VVCR2BFMhvpfpNV", - "tHl6bZbM6Kz0W2UooCkugy8e1M526Z84ISJm0+1yGeIcYOmada/xFZf5U7I+vBAqrwGQS2uYmjmtT73V", - "tvX5WDgHXBDWOYTZuFZN3kn+5hlv9ohODstl8MSCjcugifDi4j50C6ooHT7uI8ZDRE4wxq2uwblb/GSD", - "kE1jbyNY4mKSrnyYFRX2bHYnbf3THELmnCMRItbIlMZLm/7eCSc5SoLLJ2M+5YgekxPkr2d7FfijSfYQ", - "6rwP5OJuUxnn9BftD1gjpIsqjc5OZo16PDnhoLYfm2P4Iy33jISFq/+VcqdoXvZBhq8t3eBnZi4gZe1e", - "vrk1+lqrGnPbwom0hlPKX6lwq5SBO196upY7D5JVjxLMpyjFdzD6ccHj0qu72tdK/cAUP0U/vCEf3Y9t", - "6gX3tZdHe7j8C7pRuA1Trk8yLNf/7mfETR4RqFfZVVaIIh+n/oovtPIxD0TAMP6UEswEfAl/1cirYFhc", - "o66DsG24EIl7qYXittp4XasijwTfarNs2sggbqS7KaeiTQfQHbqmLxvp16deQSOKRrjytmmDEtYJpxpJ", - "7hC2OCNnbQp4sI6zFqR7BN5O3SBf9FB8px04I+4pA5L2/MTHnfl3PyRY///zy6mUkT1DPpYp4WCqGvaf", - "A5YBR2+dDt3ZiYGCVdRvxaSNXfWngaISk65ow1rOXhYMHfMcGBA1TE112W+1V0J69FiPUnNM6ZFZc5Al", - "M5a+oReyJnFHbJQ06IJ0IWpnt5QhBNM7IGd8EaNvhzYiSLOAqWd14FGcgnBaX6Ydpo7CTkx2C93DPCMl", - "6T4UvNuK6+5zZyScVhGs+CG72zu1gYKsA5+q1J/2cbQuIf2VgsHTSCioAITZAcu3V/Cpv6Dya9gNuZEu", - "gcVst+Ja6obEQaKcYZ3eTWTPhZHKCqnffjaFVMWJX2iZ0TWWwfBFrEaDk35EXiTGh+CkoVex+j+E4A7T", - "MlBOon46okZyuC5pXrl6DaRwgKT+/a6H1kxCKBK/oDUXi40FsgEp6ZKMgyXxMPqo4ApTcX9+O+hSBvEI", - "uvIW8I+MvfBK2Gv+9fiC0zvxEbhRahsTIKDyGat4TAWcAJrcJbvSJ6wtg2kcysmVvnny4NmVjnLeR8gc", - "471PKZdwRXEfspxLTx5//epfELb2lBx1atU20rG/dM5/zsUb9Y7tCnApqDqeAOH1Pzlbx4Wg0lj4fWwp", - "jI01WffwjiA5PDjzeIA9vBP/8KAy1DPuaIKyA3j/vRlELCU8jcipOvgIjynP/kvpbmp7y83IMY6+kCHI", - "5XpDFclg+pwf7Vg8mw8KhldYLhwHuPx//lSJJRBxFNrUu6AMOkhNn4oXG7IXH1MF6tPj8L9qhWn/dvUf", - "7zbNFy9QDdgXC1T/ex9XlC0+vzSXosf5kOI0FkGHJh3fpTXX2oHCBB+zTiXL3oUWd/YxR0mKuznVpkrC", - "jcaSs291wBMMfYMynP3ZsOOi450wgFhNE8sD+F9b6dcTMpU2waIgGg0d0G3d51QHa7TmUPRdG9ZUCX+X", - "mWBTBXB7GhucQgMHIpBDAoppdDLTFmSAiK19JbYtLkNzCkEo21WJa6iBeG3drYyZbLuJLddqeQOQDDYm", - "bzI9CbMkWhZESVx9nTyAOMoGX+keMHpCYjIMpVyH0Wr0iMBJnkELrCUmvAqP8zgglJaN7XrQBkZZOeX9", - "cNRoNmOYDRQCpeyFtJMQF6bfsfAh0GWkNUE33cqXjcUSdYM4o7HTE6vL0myjhAzrTkU4MRciGWoqlkdY", - "RMbkWQQyftIFfzJMVU3ICqeC+hgEiTJ0qWY9tUiqFpiRv6ESdDzHIB7RBgh9zc4tMQno4yqBNM6PAJHO", - "aR2LbuWz1KY/9A/Pn34XgwqVqaNpwl73m3GaVcabBSxywQskvOg2xTwuqSc6iA22hStpZ9vBgwwhORfP", - "NeM07hF0UdaCFLQb0YZrbw3vNAp6ixhfA8cFxmTE3qlwPqy7m1wG+GTkHfQOx0bWqiIllfaRsKRoX3xI", - "S6g6Rz7upk9XOBVxkpw5b6BPaq4uiKlvHNWelR9ZQmMquDaE/kWmXqNdAN3YNlJXmSsIjA1ZNN+jb5/8", - "4bFoTQNnPctJknXOkAaBfYFO2Y9460CHxafJWA4izMH5uBorIrn4Iue/laRWYxI5iBQFkuuUt81bUrvt", - "8K5r9DL4dGiMaKSpOworvBXXki8AvknsAifK101+vTzKpgfMdP4OqzOSo0aNuovOW3znqdRMruzjaMhV", - "KvGLVDiepvzOPGetR3RPJa9N3tge+lI7+NDPxYuA2joH0PNBIsZg+rbd4tq6BU59uK0xVHM3wEieZkaG", - "yO8Bm+v8ailnHXarj400L2fJw8jharbNHr2f5Rg15pBwMkQhc2Vy/yDe4QRm3hbG3s5n1chWX83SSRhP", - "58dIzHNkhGdR3UVIBB/3xgKa38X7jYfMMHPCoRM5r85HAZue4yXQaExKGajG0v/xW7FcSyeXQTm8bYlJ", - "JStUd67nYxmhmtH78QTgA/EoO8KPz+OErAk2ZyBGPNyc74XzeFmmDwoX7wWSm/59DjNVBvRvf8GJkLSp", - "TJj9bbiEavbuFJqevpUOuHXg4SM6w8pe0ufZk1fc04dyesbP55+8T09OgMt04RVSnwov9GDpaZZWP96W", - "1olHCZcfU6A4pVr/ut2bx5LZKS7uNCcS5aDMX7DuoLz1QgoiHaNbK5bc5bt3XKcfGl0kWp1YxkKqHWmW", - "qsFhnsIAHND6hdx7Iw8EeHLLYDBfv8I3yqqfX/hOAW09BiZx9fuIWkfFMrfJSW6GnXhXyiD2mJXgn6om", - "RfRcXPLQ2XTyMDs8y6mY2pQh9qBsNXnbv/jiEUYM83Ko2FdOorZEMw5kdrMuFNBNvdtaH/l4+mMBTYeV", - "9GKJvboXaAEthWmxRkAX7JEHelTCglF828AV/sObN6+qoVzeycTWZZbuCUPdq7jWz5MamFMEHJu3iub2", - "9RM9FAkg7ca2DQfSDLyRN8qzYTgGgEVH4EcUjhvzRnlyE+ZGaP97nNfMySQ0zdXju1AG/LQ1+ccdPUn8", - "dxx5jfVylInl+AHJSigT7+M8suyYCIA4zsddZl+J0rl6X85Zgpu/t6fDRu0pDHPy9l5m1IoqNlVRscAH", - "WsDAmW0IkC3Zh86FBNry8keq+sS6K7ndnnhyd0C2K6nBwq5Rfq0UiPk0rcy+hTrZxsrak/gdd0kspUO3", - "Fim8NPWVfSfYBnl6qZat02F3+so2eklRabEA1VaZqJNEjQ5HtbFDW7MTS2lOgpDLEMHw9NWLGBkO01Zu", - "j/Xrtbz9r2QS/s3Zb/7brPRJ6Tzqb/YmkUlF2BOBpgjDov4HucB2tVI+LPimTjGY8S7varLTx8F23/I3", - "C+5DQR12/HBObVEBlTyC4t1QylHE836N6/sCAk+EW/313/XHMIfJoxCbVqjW2SqXhUf17C5Fzuz1Z2TM", - "Xt+JL/uXYcsKlZgKuZG/9npIPfliojrU17MVhxIsmP5CpgImu7BbHaLovtmGfpKXcuYDzpj8oMlauPcv", - "k2D1GPk7c/D+1xC6I2k8irCmxkMDdpStZXRaYItCh1cebLqqC9i9VU6lkNwbBSgWwMLpz0D6Ls3y7L35", - "cJzQTWYoZ2+jB3lS6sowmao9weGzpGrn0Y6lRQnw/wLEP04V9usMXJofTCVZFgjN3RNYHsgkG1OSsld9", - "KQN2lng6d/8+iXHUURDklAR9WoyadEAwbVrlhx1Q26U1b5XziHUcKeyDtSlFcj8Y960ytXVsro3DoHs5", - "iYMZmTrJqTpFjQ9y2lKhVfRO2BeKgf4YXHeGLU9xTtF+2OUhwDXF/mUQXVXict7u7627uezimf87M+1h", - "wp5VdXtQo8BR2V/LldcyDiQrwaaVZ59zr36F6A0sLM040nDEvDUqudAktOKEEdHoBGIZVnFz2FxhnUmG", - "C4pqFZyPziuOqiWONPvS3WSV7x6Ks8lG+OzlAO+bsHKAckG5jTay8V/AAzQadeIcJhhcdtIBoixNvdB1", - "VapCTIVguBHSxN22c3br1Lh+DfVgKAdTvetc1NIkAmqdcQTq7ITCdseOSBTMewkdTqcDl/7mDXf9UCnB", - "ufsvlhY8rW9KKoug/cLxbAnXz97HnwcsED9IsyLCli0DkA33fCxOwXU62vFDJAC/up82Z0LH/Yu6urTL", - "GxU4ZII8NjOvyUjAI0DQfqv/Se2WtgENJjLjxHqQfpw5DBI1b+MtkTaXboilMqBb3jptUOcbYnytbcO2", - "ZaEUTpbyEADawAMOTIpeYzQmVWzi0dBgUGjKhhyYOnqVYgXa9HJtm5pyR6Ujov/ZeXtHWqDe6ehPTutk", - "L9Vbojq1Et8+efIkEQpoDpgcWp/ifJX0e2NFMnw4IlwENmAvid0bljcR6we7ef9Ohxr0b558M0a8y1sd", - "IrIBWDo03Dob7NI2/x4q8bKM05GcTyKz5ZX/JnUAWUm+TtMKVdSc/WeKfUdLI0fEVllGIzi60cE8deRa", - "w8WRhHWRpCCP1pX0mYsfZVBOKCw0Ceem5oTxmYoBe6stmKCIBZyQIvgE9ar5PaDGvV/Pr2DgAciZtIKv", - "X7aPMz1zrTlUf4/CIoabBAhDUjQXZdZeaPL1Bd8gbbh+RSDgdNIkBqIQXjCGBBVTBbhd7E3iLaU22wDs", - "WpS6oXN+7Hl0ukE8dQuYF3M5gAg/F98++ZaRtetYY41USVg7gV1xx1+3D5qVPR9myliAZyvuw9eIWrmw", - "MJ3eL6M0lP6iYzMau9KG7l1PxeA7Pr+ineWP+8pKuLIBa7p998I6znbRSRB+zm7tbMcbBmBplAyunJX1", - "UvoQcy5s5Q7s7in/HreOtzboGiej9xNIHpIwZRM5xGT7XnrWeIj323V+Sa0+hyI1jsbi8zH6VEKruBgW", - "yPhmSe06v7EiBM7ew7sBu18qQTJ91ewpQSLeSPKplEwGgR5miSCWdrv7GBZ/kmx9Dpr1XaLyU9iXbU13", - "JTwQBcP/PoXGK2qL0R2Fi7P0br7kXJatiXSxgH7apxgEuDO/EcGKb5486cUgZFgRNV+EHb1xhnhCCg/K", - "ZaKDcArG84N5BYvTABqml2uxaT0GQIkrhSoMQ/dwrPfWC4C6jd33HtCiKHCjmEi3zZHuCDkGRjic2evT", - "K0Sm0PbzlakZkbgJE1HAAN8BM/nVKKk/fPhfAwA=", + "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", + "MoW2n69MzYjETZiIAgb4DpjJr0ZJ/eHD/xoA", } // decodeSpec returns the embedded OpenAPI spec as raw JSON bytes, diff --git a/internal/store/store.go b/internal/store/store.go index 9fa31d8..3770fbf 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -514,29 +514,30 @@ func (s *Store) ClearFinalizing(ctx context.Context, id string) error { }) } -func (s *Store) SetFinalizingCommit(ctx context.Context, id, commit, notes string) error { - return s.setFinalizing(ctx, id, commit, notes, false) +func (s *Store) SetFinalizingCommit(ctx context.Context, id, commit, notes, pushed string) error { + return s.setFinalizing(ctx, id, commit, notes, pushed, false) } func (s *Store) SetFinalizingUnchanged(ctx context.Context, id string) error { - return s.setFinalizing(ctx, id, "", "", true) + return s.setFinalizing(ctx, id, "", "", "", true) } -func (s *Store) setFinalizing(ctx context.Context, id, commit, notes string, unchanged bool) error { +func (s *Store) setFinalizing(ctx context.Context, id, commit, notes, pushed string, unchanged bool) error { return s.write(ctx, func(tx *sql.Tx, emit emitFunc) error { - res, err := tx.ExecContext(ctx, `UPDATE tasks SET finalizing_commit = ?, finalizing_notes = ?, finalizing_unchanged = ? WHERE id = ? AND status = ? AND finalizing != ''`, - commit, notes, unchanged, id, string(api.TaskStatusActive)) - if err != nil { - return err - } - n, err := res.RowsAffected() - if err != nil { - return err - } - if n == 0 { + projectID := "" + err := tx.QueryRowContext(ctx, `UPDATE tasks SET finalizing_commit = ?, finalizing_notes = ?, finalizing_unchanged = ? WHERE id = ? AND status = ? AND finalizing != '' RETURNING project_id`, + commit, notes, unchanged, id, string(api.TaskStatusActive)).Scan(&projectID) + if errors.Is(err, sql.ErrNoRows) { return ErrNotFound } - return nil + if err != nil || commit == "" { + return err + } + err = emit(api.Event{Kind: "task.pushing", ProjectId: &projectID, TaskId: &id, Actor: "byre", Payload: map[string]any{"id": id, "commit": commit, "pushed": pushed}}) + if err != nil { + return err + } + return settleTaskState(ctx, tx, emit, id, "byre") }) } @@ -1611,6 +1612,7 @@ const taskStateExpr = `CASE END WHEN tasks.discard_state != '' THEN 'discarding' WHEN EXISTS (SELECT 1 FROM inbox_items i WHERE i.task_id = tasks.id AND i.state = 'open') THEN 'asking' + WHEN tasks.finalizing != '' AND tasks.finalizing_commit != '' THEN 'pushing' WHEN tasks.merging_by != '' OR tasks.finalizing != '' OR tasks.parent_merge_by != '' THEN 'merging' WHEN tasks.merge_queued_by != '' THEN 'merge_held' WHEN tasks.merge_after_review_by != '' THEN 'merge_after_review' diff --git a/mac/Sources/Byre/Store.swift b/mac/Sources/Byre/Store.swift index d70b029..855bce6 100644 --- a/mac/Sources/Byre/Store.swift +++ b/mac/Sources/Byre/Store.swift @@ -40,6 +40,7 @@ struct TaskState { private let stateTitles: [ByreTask.StatePayload: TaskState] = [ .asking: TaskState(kind: .answer, label: "Needs your answer", title: "The agent asked a question"), .merging: TaskState(kind: .merging, label: "Merging", title: "The merge is under way"), + .pushing: TaskState(kind: .merging, label: "Pushing", title: "byre is pushing the merge commit to the remote"), .mergeHeld: TaskState(kind: .held, label: "Merge held", title: "Waiting for the merge in progress in this project to finish"), .mergeAfterReview: TaskState(kind: .held, label: "Merge after review", title: "Merges when the running review finishes with no findings"), .running: TaskState(kind: .working, label: "Working", title: "The agent is mid-turn or its subagents are running"), diff --git a/mac/Sources/Byre/TranscriptBuilder.swift b/mac/Sources/Byre/TranscriptBuilder.swift index 96d7ef3..b29db85 100644 --- a/mac/Sources/Byre/TranscriptBuilder.swift +++ b/mac/Sources/Byre/TranscriptBuilder.swift @@ -965,6 +965,9 @@ final class TranscriptBuilder { let pushed = str(p, "pushed") ?? "" return note([.text("✓ \(ev.actor) merged the task\(commit.isEmpty ? "" : " as \(commit.prefix(7))")\(pushed.isEmpty ? "" : " and pushed it to \(pushed)")")], .ok) + case "task.pushing": + return note([.text("pushing \(jsString(p["commit"]).prefix(7)) to \(jsString(p["pushed"]))…")]) + case "task.merged_to_main": return note([.text("\(ev.actor) merged the work so far as \(jsString(p["commit"]).prefix(7)), \"\(jsString(p["merge_title"]))\", pushed it to \(jsString(p["pushed"])) and kept the task open")])