├── .github └── workflows │ ├── platform_tests.yml │ └── static_analysis.yml ├── .gitignore ├── AUTHORS ├── FyneApp.toml ├── Icon.png ├── Icon.svg ├── LICENSE ├── README.md ├── calc.go ├── calc_test.go ├── data.go ├── go.mod ├── go.sum ├── img ├── calc-dark.png └── calc-light.png └── main.go /.github/workflows/platform_tests.yml: -------------------------------------------------------------------------------- 1 | name: Platform Tests 2 | on: [push, pull_request] 3 | permissions: 4 | contents: read 5 | 6 | jobs: 7 | platform_tests: 8 | runs-on: ${{ matrix.os }} 9 | strategy: 10 | fail-fast: false 11 | matrix: 12 | go-version: [1.19, 1.23] 13 | os: [ubuntu-latest, windows-latest, macos-latest] 14 | 15 | steps: 16 | - uses: actions/checkout@v3 17 | with: 18 | persist-credentials: false 19 | - uses: WillAbides/setup-go-faster@v1.10.1 20 | with: 21 | go-version: ${{ matrix.go-version }} 22 | 23 | - name: Get dependencies 24 | run: sudo apt-get update && sudo apt-get install gcc libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libx11-dev xorg-dev bc 25 | if: ${{ runner.os == 'Linux' }} 26 | 27 | - name: Tests 28 | run: go test -tags ci ./... 29 | 30 | - name: Update coverage 31 | run: | 32 | set -e 33 | go test -tags ci -covermode=atomic -coverprofile=coverage.out ./... 34 | coverage=`go tool cover -func coverage.out | grep total | tr -s '\t' | cut -f 3 | grep -o '[^%]*'` 35 | if (( $(echo "$coverage < 85" | bc) )); then echo "Test coverage lowered"; exit 1; fi 36 | if: ${{ runner.os == 'Linux' && matrix.go-version == '1.23' }} 37 | 38 | - name: Update PR Coverage 39 | uses: shogo82148/actions-goveralls@v1 40 | with: 41 | path-to-profile: coverage.out 42 | if: ${{ runner.os == 'Linux' && matrix.go-version == '1.23' }} 43 | 44 | -------------------------------------------------------------------------------- /.github/workflows/static_analysis.yml: -------------------------------------------------------------------------------- 1 | name: Static Analysis 2 | on: [push, pull_request] 3 | permissions: 4 | contents: read 5 | 6 | jobs: 7 | checks: 8 | runs-on: ubuntu-latest 9 | strategy: 10 | fail-fast: false 11 | 12 | steps: 13 | - uses: actions/checkout@v3 14 | with: 15 | persist-credentials: false 16 | - uses: WillAbides/setup-go-faster@v1.10.1 17 | with: 18 | go-version: '1.21.x' 19 | 20 | - name: Get dependencies 21 | run: | 22 | sudo apt-get update && sudo apt-get install gcc libgl1-mesa-dev libegl1-mesa-dev libgles2-mesa-dev libx11-dev xorg-dev 23 | go install golang.org/x/tools/cmd/goimports@latest 24 | go install github.com/fzipp/gocyclo/cmd/gocyclo@latest 25 | go install golang.org/x/lint/golint@latest 26 | go install honnef.co/go/tools/cmd/staticcheck@v0.4.5 27 | 28 | - name: Cleanup repository 29 | run: rm -rf vendor/ 30 | 31 | - name: Vet 32 | run: go vet -tags ci ./... 33 | 34 | - name: Goimports 35 | run: test -z $(goimports -e -d . | tee /dev/stderr) 36 | 37 | - name: Gocyclo 38 | run: gocyclo -over 30 . 39 | 40 | - name: Golint 41 | run: golint -set_exit_status $(go list -tags ci ./...) 42 | 43 | - name: Staticcheck 44 | run: staticcheck ./... 45 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Binaries for programs and plugins 2 | *.exe 3 | *.exe~ 4 | *.dll 5 | *.so 6 | *.dylib 7 | calculator 8 | 9 | # Output from fyne-cross 10 | fyne-cross/ 11 | 12 | # Test binary, built with `go test -c` 13 | *.test 14 | 15 | # Output of the go coverage tool, specifically when used with LiteIDE 16 | *.out 17 | 18 | # Other stuff 19 | .idea 20 | .DS_Store 21 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Andy Williams 2 | -------------------------------------------------------------------------------- /FyneApp.toml: -------------------------------------------------------------------------------- 1 | [Details] 2 | Icon = "Icon.png" 3 | Name = "Calculator" 4 | ID = "io.fyne.calculator" 5 | Version = "1.1.0" 6 | Build = 11 7 | -------------------------------------------------------------------------------- /Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fyne-io/calculator/6b38ebde6ed956e9d83ed3ce2ef6350fe3e6b0ea/Icon.png -------------------------------------------------------------------------------- /Icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2020 Fyne.io developers (see AUTHORS) 2 | All rights reserved. 3 | 4 | 5 | Redistribution and use in source and binary forms, with or without 6 | modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | notice, this list of conditions and the following disclaimer in the 11 | documentation and/or other materials provided with the distribution. 12 | * Neither the name of Fyne.io nor the 13 | names of its contributors may be used to endorse or promote products 14 | derived from this software without specific prior written permission. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY 20 | DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Code Status 3 | Join us on Slack 4 | Coverage Status 5 |

6 | 7 | # Fyne Calculator 8 | 9 | A simple calculator application built using the Fyne toolkit. 10 | 11 | ![](img/calc-dark.png)   ![](img/calc-light.png) 12 | -------------------------------------------------------------------------------- /calc.go: -------------------------------------------------------------------------------- 1 | //go:generate fyne bundle -o data.go Icon.png 2 | 3 | package main 4 | 5 | import ( 6 | "log" 7 | "strconv" 8 | "strings" 9 | 10 | "fyne.io/fyne/v2" 11 | "fyne.io/fyne/v2/container" 12 | "fyne.io/fyne/v2/widget" 13 | 14 | "github.com/Knetic/govaluate" 15 | ) 16 | 17 | type calc struct { 18 | equation string 19 | 20 | output *widget.Label 21 | buttons map[string]*widget.Button 22 | window fyne.Window 23 | } 24 | 25 | func (c *calc) display(newtext string) { 26 | c.equation = newtext 27 | c.output.SetText(newtext) 28 | } 29 | 30 | func (c *calc) character(char rune) { 31 | c.display(c.equation + string(char)) 32 | } 33 | 34 | func (c *calc) digit(d int) { 35 | c.character(rune(d) + '0') 36 | } 37 | 38 | func (c *calc) clear() { 39 | c.display("") 40 | } 41 | 42 | func (c *calc) backspace() { 43 | if len(c.equation) == 0 { 44 | return 45 | } else if c.equation == "error" { 46 | c.clear() 47 | return 48 | } 49 | 50 | c.display(c.equation[:len(c.equation)-1]) 51 | } 52 | 53 | func (c *calc) evaluate() { 54 | if strings.Contains(c.output.Text, "error") { 55 | c.display("error") 56 | return 57 | } 58 | 59 | expression, err := govaluate.NewEvaluableExpression(c.output.Text) 60 | if err != nil { 61 | log.Println("Error in calculation", err) 62 | c.display("error") 63 | return 64 | } 65 | 66 | result, err := expression.Evaluate(nil) 67 | if err != nil { 68 | log.Println("Error in calculation", err) 69 | c.display("error") 70 | return 71 | } 72 | 73 | value, ok := result.(float64) 74 | if !ok { 75 | log.Println("Invalid input:", c.output.Text) 76 | c.display("error") 77 | return 78 | } 79 | 80 | c.display(strconv.FormatFloat(value, 'f', -1, 64)) 81 | } 82 | 83 | func (c *calc) addButton(text string, action func()) *widget.Button { 84 | button := widget.NewButton(text, action) 85 | c.buttons[text] = button 86 | return button 87 | } 88 | 89 | func (c *calc) digitButton(number int) *widget.Button { 90 | str := strconv.Itoa(number) 91 | return c.addButton(str, func() { 92 | c.digit(number) 93 | }) 94 | } 95 | 96 | func (c *calc) charButton(char rune) *widget.Button { 97 | return c.addButton(string(char), func() { 98 | c.character(char) 99 | }) 100 | } 101 | 102 | func (c *calc) onTypedRune(r rune) { 103 | if r == 'c' { 104 | r = 'C' // The button is using a capital C. 105 | } 106 | 107 | if button, ok := c.buttons[string(r)]; ok { 108 | button.OnTapped() 109 | } 110 | } 111 | 112 | func (c *calc) onTypedKey(ev *fyne.KeyEvent) { 113 | if ev.Name == fyne.KeyReturn || ev.Name == fyne.KeyEnter { 114 | c.evaluate() 115 | } else if ev.Name == fyne.KeyBackspace { 116 | c.backspace() 117 | } 118 | } 119 | 120 | func (c *calc) onPasteShortcut(shortcut fyne.Shortcut) { 121 | content := shortcut.(*fyne.ShortcutPaste).Clipboard.Content() 122 | if _, err := strconv.ParseFloat(content, 64); err != nil { 123 | return 124 | } 125 | 126 | c.display(c.equation + content) 127 | } 128 | 129 | func (c *calc) onCopyShortcut(shortcut fyne.Shortcut) { 130 | shortcut.(*fyne.ShortcutCopy).Clipboard.SetContent(c.equation) 131 | } 132 | 133 | func (c *calc) loadUI(app fyne.App) { 134 | c.output = &widget.Label{Alignment: fyne.TextAlignTrailing} 135 | c.output.TextStyle.Monospace = true 136 | 137 | equals := c.addButton("=", c.evaluate) 138 | equals.Importance = widget.HighImportance 139 | 140 | c.window = app.NewWindow("Calc") 141 | c.window.SetContent(container.NewGridWithColumns(1, 142 | c.output, 143 | container.NewGridWithColumns(4, 144 | c.addButton("C", c.clear), 145 | c.charButton('('), 146 | c.charButton(')'), 147 | c.charButton('/')), 148 | container.NewGridWithColumns(4, 149 | c.digitButton(7), 150 | c.digitButton(8), 151 | c.digitButton(9), 152 | c.charButton('*')), 153 | container.NewGridWithColumns(4, 154 | c.digitButton(4), 155 | c.digitButton(5), 156 | c.digitButton(6), 157 | c.charButton('-')), 158 | container.NewGridWithColumns(4, 159 | c.digitButton(1), 160 | c.digitButton(2), 161 | c.digitButton(3), 162 | c.charButton('+')), 163 | container.NewGridWithColumns(2, 164 | container.NewGridWithColumns(2, 165 | c.digitButton(0), 166 | c.charButton('.')), 167 | equals)), 168 | ) 169 | 170 | canvas := c.window.Canvas() 171 | canvas.SetOnTypedRune(c.onTypedRune) 172 | canvas.SetOnTypedKey(c.onTypedKey) 173 | canvas.AddShortcut(&fyne.ShortcutCopy{}, c.onCopyShortcut) 174 | canvas.AddShortcut(&fyne.ShortcutPaste{}, c.onPasteShortcut) 175 | c.window.Resize(fyne.NewSize(200, 300)) 176 | c.window.Show() 177 | } 178 | 179 | func newCalculator() *calc { 180 | return &calc{ 181 | buttons: make(map[string]*widget.Button, 19), 182 | } 183 | } 184 | -------------------------------------------------------------------------------- /calc_test.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "testing" 5 | 6 | "fyne.io/fyne/v2" 7 | "fyne.io/fyne/v2/test" 8 | 9 | "github.com/stretchr/testify/assert" 10 | ) 11 | 12 | func TestAdd(t *testing.T) { 13 | calc := newCalculator() 14 | calc.loadUI(test.NewApp()) 15 | 16 | test.Tap(calc.buttons["1"]) 17 | test.Tap(calc.buttons["+"]) 18 | test.Tap(calc.buttons["1"]) 19 | test.Tap(calc.buttons["="]) 20 | 21 | assert.Equal(t, "2", calc.output.Text) 22 | } 23 | 24 | func TestSubtract(t *testing.T) { 25 | calc := newCalculator() 26 | calc.loadUI(test.NewApp()) 27 | 28 | test.Tap(calc.buttons["2"]) 29 | test.Tap(calc.buttons["-"]) 30 | test.Tap(calc.buttons["1"]) 31 | test.Tap(calc.buttons["="]) 32 | 33 | assert.Equal(t, "1", calc.output.Text) 34 | } 35 | 36 | func TestDivide(t *testing.T) { 37 | calc := newCalculator() 38 | calc.loadUI(test.NewApp()) 39 | 40 | test.Tap(calc.buttons["3"]) 41 | test.Tap(calc.buttons["/"]) 42 | test.Tap(calc.buttons["2"]) 43 | test.Tap(calc.buttons["="]) 44 | 45 | assert.Equal(t, "1.5", calc.output.Text) 46 | } 47 | 48 | func TestMultiply(t *testing.T) { 49 | calc := newCalculator() 50 | calc.loadUI(test.NewApp()) 51 | 52 | test.Tap(calc.buttons["5"]) 53 | test.Tap(calc.buttons["*"]) 54 | test.Tap(calc.buttons["2"]) 55 | test.Tap(calc.buttons["="]) 56 | 57 | assert.Equal(t, "10", calc.output.Text) 58 | } 59 | 60 | func TestParenthesis(t *testing.T) { 61 | calc := newCalculator() 62 | calc.loadUI(test.NewApp()) 63 | 64 | test.Tap(calc.buttons["2"]) 65 | test.Tap(calc.buttons["*"]) 66 | test.Tap(calc.buttons["("]) 67 | test.Tap(calc.buttons["3"]) 68 | test.Tap(calc.buttons["+"]) 69 | test.Tap(calc.buttons["4"]) 70 | test.Tap(calc.buttons[")"]) 71 | test.Tap(calc.buttons["="]) 72 | 73 | assert.Equal(t, "14", calc.output.Text) 74 | } 75 | 76 | func TestDot(t *testing.T) { 77 | calc := newCalculator() 78 | calc.loadUI(test.NewApp()) 79 | 80 | test.Tap(calc.buttons["2"]) 81 | test.Tap(calc.buttons["."]) 82 | test.Tap(calc.buttons["2"]) 83 | test.Tap(calc.buttons["+"]) 84 | test.Tap(calc.buttons["7"]) 85 | test.Tap(calc.buttons["."]) 86 | test.Tap(calc.buttons["8"]) 87 | test.Tap(calc.buttons["="]) 88 | 89 | assert.Equal(t, "10", calc.output.Text) 90 | } 91 | 92 | func TestClear(t *testing.T) { 93 | calc := newCalculator() 94 | calc.loadUI(test.NewApp()) 95 | 96 | test.Tap(calc.buttons["1"]) 97 | test.Tap(calc.buttons["2"]) 98 | test.Tap(calc.buttons["C"]) 99 | 100 | assert.Equal(t, "", calc.output.Text) 101 | } 102 | 103 | func TestContinueAfterResult(t *testing.T) { 104 | calc := newCalculator() 105 | calc.loadUI(test.NewApp()) 106 | 107 | test.Tap(calc.buttons["6"]) 108 | test.Tap(calc.buttons["+"]) 109 | test.Tap(calc.buttons["4"]) 110 | test.Tap(calc.buttons["="]) 111 | test.Tap(calc.buttons["-"]) 112 | test.Tap(calc.buttons["2"]) 113 | test.Tap(calc.buttons["="]) 114 | 115 | assert.Equal(t, "8", calc.output.Text) 116 | } 117 | 118 | func TestKeyboard(t *testing.T) { 119 | calc := newCalculator() 120 | calc.loadUI(test.NewApp()) 121 | 122 | test.TypeOnCanvas(calc.window.Canvas(), "1+1") 123 | assert.Equal(t, "1+1", calc.output.Text) 124 | 125 | test.TypeOnCanvas(calc.window.Canvas(), "=") 126 | assert.Equal(t, "2", calc.output.Text) 127 | 128 | test.TypeOnCanvas(calc.window.Canvas(), "c") 129 | assert.Equal(t, "", calc.output.Text) 130 | } 131 | 132 | func TestKeyboard_Buttons(t *testing.T) { 133 | calc := newCalculator() 134 | calc.loadUI(test.NewApp()) 135 | 136 | test.TypeOnCanvas(calc.window.Canvas(), "1+1") 137 | calc.onTypedKey(&fyne.KeyEvent{Name: fyne.KeyReturn}) 138 | assert.Equal(t, "2", calc.output.Text) 139 | 140 | test.TypeOnCanvas(calc.window.Canvas(), "c") 141 | 142 | test.TypeOnCanvas(calc.window.Canvas(), "1+1") 143 | calc.onTypedKey(&fyne.KeyEvent{Name: fyne.KeyEnter}) 144 | assert.Equal(t, "2", calc.output.Text) 145 | } 146 | 147 | func TestKeyboard_Backspace(t *testing.T) { 148 | calc := newCalculator() 149 | calc.loadUI(test.NewApp()) 150 | 151 | calc.onTypedKey(&fyne.KeyEvent{Name: fyne.KeyBackspace}) 152 | assert.Equal(t, "", calc.output.Text) 153 | 154 | test.TypeOnCanvas(calc.window.Canvas(), "1/2") 155 | calc.onTypedKey(&fyne.KeyEvent{Name: fyne.KeyBackspace}) 156 | assert.Equal(t, "1/", calc.output.Text) 157 | 158 | calc.onTypedKey(&fyne.KeyEvent{Name: fyne.KeyEnter}) 159 | assert.Equal(t, "error", calc.output.Text) 160 | 161 | calc.onTypedKey(&fyne.KeyEvent{Name: fyne.KeyBackspace}) 162 | assert.Equal(t, "", calc.output.Text) 163 | } 164 | 165 | func TestError(t *testing.T) { 166 | calc := newCalculator() 167 | calc.loadUI(test.NewApp()) 168 | 169 | test.TypeOnCanvas(calc.window.Canvas(), "1//1=") 170 | assert.Equal(t, "error", calc.output.Text) 171 | 172 | test.TypeOnCanvas(calc.window.Canvas(), "c") 173 | 174 | test.TypeOnCanvas(calc.window.Canvas(), "()9=") 175 | assert.Equal(t, "error", calc.output.Text) 176 | 177 | test.TypeOnCanvas(calc.window.Canvas(), "=") 178 | assert.Equal(t, "error", calc.output.Text) 179 | 180 | test.TypeOnCanvas(calc.window.Canvas(), "55=") 181 | assert.Equal(t, "error", calc.output.Text) 182 | } 183 | 184 | func TestShortcuts(t *testing.T) { 185 | app := test.NewApp() 186 | calc := newCalculator() 187 | calc.loadUI(app) 188 | clipboard := app.Clipboard() 189 | 190 | test.TypeOnCanvas(calc.window.Canvas(), "720 + 80") 191 | calc.onCopyShortcut(&fyne.ShortcutCopy{Clipboard: clipboard}) 192 | assert.Equal(t, clipboard.Content(), calc.output.Text) 193 | 194 | test.TypeOnCanvas(calc.window.Canvas(), "+") 195 | clipboard.SetContent("50") 196 | calc.onPasteShortcut(&fyne.ShortcutPaste{Clipboard: clipboard}) 197 | test.TypeOnCanvas(calc.window.Canvas(), "=") 198 | assert.Equal(t, "850", calc.output.Text) 199 | 200 | clipboard.SetContent("not a valid number") 201 | calc.onPasteShortcut(&fyne.ShortcutPaste{Clipboard: clipboard}) 202 | assert.Equal(t, "850", calc.output.Text) 203 | } 204 | -------------------------------------------------------------------------------- /data.go: -------------------------------------------------------------------------------- 1 | // auto-generated 2 | // Code generated by '$ fyne bundle'. DO NOT EDIT. 3 | 4 | package main 5 | 6 | import "fyne.io/fyne/v2" 7 | 8 | var resourceIconPng = &fyne.StaticResource{ 9 | StaticName: "Icon.png", 10 | StaticContent: []byte( 11 | "\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x04\x00\x00\x00\x04\x00\b\x06\x00\x00\x00\u007f\x1d+\x83\x00\x00\x00\tpHYs\x00\x025\xad\x00\x025\xad\x01d\x99\xb4H\x00\x00\x00\x19tEXtSoftware\x00www.inkscape.org\x9b\xee<\x1a\x00\x00 \x00IDATx\x9c\xec\xdd\xff\xaf\x9eu}\xc7\xf1\xf7\xdds\xb7\xa5\xa9\xad\xb5\xac\xed\x01cH\xa1\x04\xc7\x17\x19lt\x10@\x90R\xc5\xe1\x02\xc4\xe9\x12\xdd\\\xb2/.(0\xa6\x02e\x12(۔1\x06\xb8Ź\x04\x17\xf7\xcb\xc8\x126E\xd9A\xbbM\x147Ԩ\x1b2\xfcF][0\xc4\xd9\xd0u\xc0i\xa1-=\xe5\xec\a\xbd'_ڞ/\xbd\xae\xfbs]\xd7\xfb\xf1\xf8\x03N\xde?\x9c\x9cܯ\xe7\xb9\xee\xfb\xee\x9dw\xdey\x93\x01\x00\x00\x00tڜ\xd2\a\x00\x00\x00\x00\xf5\x13\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x81~\xe9\x03\xa0\xcb\xe6Ν\x1b\xa3\xa3\xa31::\x1a+V\xac\x88W\xbd\xeaU\xb1x\xf1\xe2x\xe5+_\x19\x8b\x17/\x8e\x91\x91\x91X\xb8pa\xf4z\xbdҧ\x02\x00\x1d\xb7gϞػwo\xecڵ+\x9e~\xfa\xe9xꩧb||<\xb6m\xdb\x16[\xb7n\x8d\xad[\xb7\xc6SO=U\xfaL\xa0F\x02\x00TdŊ\x15\xf1\xda\u05fe6\x8e9\xe6\x98X\xb9re\x1c}\xf4ѱb\xc5\n\xe3\x1e\x00h\x8d]\xbbv\xc5c\x8f=\x16\x9b7o\x8e-[\xb6\xc4\xe6͛c\xe3ƍ\xb1w\xef\xdeҧ\x01\x15\xe8\x9dw\xdey\x93\xa5\x8f\x806z\xf5\xab_\x1d\xa7\x9dvZ\x9ct\xd2Iq\xc2\t'IJe\xcbJ\x9f\x04\x00P\xb9\xbd{\xf7\xc6ƍ\x1b\xe3;\xdf\xf9N|\xf3\x9bߌ\x87\x1f~8\xf6\xec\xd9S\xfa,`\x16\x04\x00\x98\xa69s\xe6\xc4)\xa7\x9c\x12g\x9cqF\xac^\xbd:^\xfd\xeaW\x97>\t\x00`\xe8\xf6\xec\xd9\x13\x0f=\xf4P|\xedk_\x8b\a\x1ex \xb6o\xdf^\xfa$`\x9a\x04\x008\x88^\xaf\x17\xaf{\xdd\xeb\xe2\roxC\x9c}\xf6ٱdɒ\xd2'\x01\x004\xc6\xe4\xe4d<\xfc\xf0\xc3q\xff\xfd\xf7Ǘ\xbe\xf4\xa5x\xfa\xe9\xa7K\x9f\x04\x1c\x84\x00\x00\xfb\xf1\xaaW\xbd*\xde\xf4\xa67Ņ\x17^\x18G\x1eyd\xe9s\x00\x00\x1aobb\"\xbe\xfc\xe5/\xc7\xd8\xd8X|\xf3\x9bߌ\xc9I3\x03\x9aF\x00\x80\x178\xee\xb8\xe3\xe2\xedo\u007f{\x9cu\xd6Y\xd1\xef\xfb\x8cL\x00\x80\xd9\xf8\xe1\x0f\u007f\x18\x9f\xfaԧbÆ\r\xb1{\xf7\xee\xd2\xe7\x00?!\x00\x90^\xaf\u05cb_\xfc\xc5_\x8c\xb7\xbf\xfd\xedq\xf2\xc9'\x97>\a\x00\xa03v\xec\xd8\x11\xf7\xdcsO|\xeaS\x9f\xf2\x15\x83\xd0\x00\x02\x00\xa9\x9dz\xea\xa9\xf1ۿ\xfd\xdbq\xdcqǕ>\x05\x00\xa0\xb3v\xef\xde\x1d\x9f\xfd\xecg\xe3\xce;\xef\x14\x02\xa0 \x01\x80\x94\x8e?\xfe\xf8\xf8\xdd\xdf\xfd\xdd8\xf1\xc4\x13K\x9f\x02\x00\x90\xc63\xcf<\x13w\xdduW\xfc\xfd\xdf\xff\xbd\xaf\x12\x84\x02\x04\x00R9\xfc\xf0\xc3\xe3]\xefzW\\x\xe1\x85\xd1\xeb\xf5J\x9f\x03\x00\x90Ҷm\xdb\xe2\x13\x9f\xf8D\xfc˿\xfc\x8b\x0f\v\x84!\x12\x00Hadd$~\xe5W~%\xde\xf5\xaew\xc5a\x87\x1dV\xfa\x1c\x00\x00\"\xe2?\xff\xf3?\xe3\xf6\xdbo\x8f\xc7\x1f\u007f\xbc\xf4)\x90\x82\x00@\xe7\x1d}\xf4\xd1\xf1\x81\x0f|\xc0\xfb\xfc\x01\x00\x1ahbb\"\xfe\xe1\x1f\xfe!\xfe\xe6o\xfe&&&&J\x9f\x03\x9d&\x00\xd0Y###\xf1\xeb\xbf\xfe\xeb\xf1\x8ew\xbc#FFFJ\x9f\x03\x00\xc0Al\u07bc9n\xba\xe9\xa6x\xf4\xd1GK\x9f\x02\x9d5\xb2r\xe5\xca\xf5\xa5\x8f\x80\xaa\x8d\x8e\x8e\xc6\x1f\xff\xf1\x1f\xc7ڵkcΜ9\xa5\xcf\x01\x00`\nK\x97.\x8d\v.\xb8 \xf6\xed\xdb\x17\xdf\xf9\xcewJ\x9f\x03\x9d\xe4\t\x00:\xe7\xfc\xf3Ϗ+\xaf\xbc2\x16,XP\xfa\x14\x00\x00f\xe1\xeb_\xffz\xdct\xd3M1>>^\xfa\x14\xe8\x14\xff\x1a\xa53FFF\xe2w~\xe7w\xe2\xdak\xaf5\xfe\x01\x00Zl\xf5\xea\xd5q\xc7\x1dw\xc4k_\xfb\xdaҧ@\xa7x\v\x00\x9d\xb0t\xe9Ҹ馛\xe2\xbc\xf3\xce+}\n\x00\x00\x15X\xb8pa\x9c\u007f\xfe\xf9\xb1m۶ؼys\xe9s\xa0\x13\x04\x00Z﨣\x8e\x8a[o\xbd5\x8e>\xfa\xe8ҧ\x00\x00P\xa1~\xbf\x1fg\x9duV,Z\xb4(\xfe\xfd\xdf\xff\xbd\xf49\xd0z\x02\x00\xadv\xca)\xa7\xc4\xcd7\xdf\x1cK\x97.-}\n\x00\x005\xf9ٟ\xfd\xd98ꨣ\xe2\xab_\xfdj\xec۷\xaf\xf49\xd0Z>\x03\x80\xd6z\xfd\xeb_\x1f\u007f\xf2'\u007f\x12\xafx\xc5+J\x9f\x02\x00@\xcd\xce9\xe7\x9c\xf8Ї>\x14\x87\x1dvX\xe9S\xa0\xb5\x04\x00Zi͚5q\xddu\xd7E\xbf\xdf/}\n\x00\x00Crꩧ\xc6m\xb7\xdd\x16\x8b\x16-*}\n\xb4\x92\x00@\xeb\xbc\xe5-o\x89k\xaf\xbd6FFFJ\x9f\x02\x00\xc0\x90\x1dw\xdcqq\xcb-\xb7\xc4\xe2ŋK\x9f\x02\xad#\x00\xd0*o|\xe3\x1b\xe3\xca+\xaf\x8c^\xafW\xfa\x14\x00\x00\n9\xf6\xd8c\xe3\x96[n\xf1$\x00̐\x00@k\x9c}\xf6\xd9\xf1\x81\x0f|\xc0\xf8\a\x00 V\xadZ\x15\x1f\xfe\xf0\x87c\xc1\x82\x05\xa5O\x81\xd6\x10\x00h\x85իW\xc7u\xd7]\xe7\xb1\u007f\x00\x00\xfe\xdf\xf1\xc7\x1f\x1f7\xdcp\x83υ\x82i\x12\x00h\xbc\x95+W\xfa\xc0?\x00\x00\xf6\xeb\xb4\xd3N\x8b+\xaf\xbc\xb2\xf4\x19\xd0\n#+W\xae\\_\xfa\b8\x90\xc3\x0f?\xfc\xe1\x0fDze\xcbJ\x9f\x02\x00@\xc3\xfd\xe6o\xfef\x9cu\xd6Y\xa5πF\x13\x00h\xac+\xae\xb8\"V\xadZU\xfa\f\x00\x00Z\xa0\xd7\xebźu\xeb⨣\x8e*}\n4\x96\x00@#]|\xf1\xc5q\xc1\x05\x17\x94>\x03\x00\x80\x16Y\xb0`A\xdcx㍱p\xe1\xc2ҧ@#\t\x004ΪU\xab\xe2\xd2K/-}\x06\x00\x00-\xf4\x9a\u05fc&\xae\xb8\xe2\x8a\xd2g@#\t\x004ʼy\xf3bݺu>\xf1\x1f\x00\x80Y;\xff\xfc\xf3c͚5\xa5π\xc6\x11\x00h\x94K/\xbd4V\xae\\Y\xfa\f\x00\x00Z\xee\xf7~\xef\xf7btt\xb4\xf4\x19\xd0(\x02\x00\x8dq\xca)\xa7\xc4/\xff\xf2/\x97>\x03\x00\x80\x0eX\xb8pa\\}\xf5\xd5\xd1\xeb\xf5J\x9f\x02\x8d!\x00\xd0\b\xf3\xe7Ϗ\xf7\xbd\xef}\xfe@\x03\x00P\x99\x93O>\xd9\aK\xc3\v\b\x004\xc2o\xfd\xd6oőG\x1eY\xfa\f\x00\x00:\xe6\xd2K/\x8d\x9f\xf9\x99\x9f)}\x064\x82\x00@q\xabV\xad\x8aK.\xb9\xa4\xf4\x19\x00\x00t\xd0\u0085\v\xe3\xdd\xef~w\xe93\xa0\x11\x04\x00\x8a{\xcf{\xde\x13s\xe6\xf8U\x04\x00\xa0\x1e\xe7\x9dw^\x9ct\xd2I\xa5π\xe2\xac.\x8a:\xe7\x9cs\xe2\xe4\x93O.}\x06\x00\x00\x1d\xd6\xeb\xf5\xe2\xb2\xcb.\xf3yS\xa4'\x00PL\xbf\xdf\xf78\x16\x00\x00C\xb1jժX\xbbvm\xe93\xa0(\x01\x80b~\xe9\x97~\xc9w\xb3\x02\x0004\xbf\xf1\x1b\xbf\x11\xfd~\xbf\xf4\x19P\x8c\x00@\x11\xf3\xe6͋w\xbc\xe3\x1d\xa5\xcf\x00\x00 \x91\xd1\xd1\xd1xӛ\xdeT\xfa\f(F\x00\xa0\x88\xb7\xbc\xe5-\xb1lٲ\xd2g\x00\x00\x90̯\xfdگy\n\x80\xb4\x04\x00\x86ndd$\xde\xf6\xb6\xb7\x95>\x03\x00\x80\x84\x96/_\x1ek֬)}\x06\x14!\x000t\xe7\x9e{n,_\xbe\xbc\xf4\x19\x00\x00$\xf5\xb6\xb7\xbd\xcd7\x02\x90\x92\x00\xc0\xd0\xf9\xef?\x00\x00%\xad\\\xb92~\xe1\x17~\xa1\xf4\x190t\x02\x00Cu\xe2\x89'Ʊ\xc7\x1e[\xfa\f\x00\x00\x92\xbb\xe4\x92KJ\x9f\x00C'\x000T\x17^xa\xe9\x13\x00\x00 V\xaf^\x1d+V\xac(}\x06\f\x95\x00\xc0м\xe2\x15\xaf\x88s\xce9\xa7\xf4\x19\x00\x00\x10\xbd^\xcfW\x02\x92\x8e\x00\xc0ЬY\xb3&\xe6ϟ_\xfa\f\x00\x00\x88\x88\x887\xbf\xf9\xcd>\f\x90T\x04\x00\x86\xc6\u05ed\x00\x00\xd0$˗/\x8f\x13N8\xa1\xf4\x1904\x02\x00C\xb1lٲ8\xfe\xf8\xe3K\x9f\x01\x00\x00/\xf2\x867\xbc\xa1\xf4\t04\x02\x00Cq\xee\xb9\xe7z\xbc\n\x00\x80\xc6y\xfd\xeb_\x1fs\xe6\x98E\xe4\xe07\x9d\xa18\xf3\xcc3K\x9f\x00\x00\x00/\xb3t\xe9RO\xaa\x92\x86\x00@\xed\x16-Z\xe4\x8f*\x00\x00\x8d\xb5z\xf5\xea\xd2'\xc0P\b\x00\xd4\xee\xe7\u007f\xfe\xe7cdd\xa4\xf4\x19\x00\x00\xb0_\x02\x00Y\b\x00\xd4\xee\xb4\xd3N+}\x02\x00\x00\x1cЪU\xabb\xe9ҥ\xa5π\xda\t\x00\xd4\xee\xe7~\xee\xe7J\x9f\x00\x00\x00\a\xd4\xeb\xf5\xe2u\xaf{]\xe93\xa0v\x02\x00\xb5Z\xbati\x8c\x8e\x8e\x96>\x03\x00\x00\x0e\xea\x84\x13N(}\x02\xd4N\x00\xa0V'\x9exb\xe9\x13\x00\x00`J'\x9dtR\xe9\x13\xa0v\x02\x00\xb5\xf2\xe9\xff\x00\x00\xb4\xc11\xc7\x1c\x13\xf3\xe7\xcf/}\x06\xd4J\x00\xa0V\xc7\x1csL\xe9\x13\x00\x00`Js\xe6̉\x95+W\x96>\x03j%\x00P\xab\xa3\x8f>\xba\xf4\t\x00\x000-^\xbb\xd2u\x02\x00\xb59\xfc\xf0\xc3cɒ%\xa5\xcf\x00\x00\x80i\xf1\x04\x00]'\x00P\x9b\u05fc\xe65\xa5O\x00\x00\x80i;ꨣJ\x9f\x00\xb5\x12\x00\xa8\xcd\x11G\x1cQ\xfa\x04\x00\x00\x986__M\xd7\t\x00\xd4fŊ\x15\xa5O\x00\x00\x80i[\xb1bE̙c\"\xd1]~\xbb\xa9\x8d'\x00\x00\x00h\x93~\xbf\x1f\x87\x1f~x\xe93\xa06\x02\x00\xb5\xf1\xc7\x13\x00\x80\xb6Y\xb6lY\xe9\x13\xa06\x02\x00\xb5y\xe5+_Y\xfa\x04\x00\x00\x98\x91ŋ\x17\x97>\x01j#\x00P\x1b\u007f<\x01\x00h\x1b\xafa\xe92\x01\x80\xda\xf8\xe3\t\x00@\xdbx\rK\x97\t\x00\xd4bΜ91o\u07bc\xd2g\x00\x00\xc0\x8c,X\xb0\xa0\xf4\tP\x1b\x01\x80Z̝;\xb7\xf4\t\x00\x000c^\xc7\xd2e\x02\x00\xb5\xf0\x87\x13\x00\x806\xf2:\x96.\x13\x00\xa8E\xbf\xdf/}\x02\x00\x00̘\x00@\x97\t\x00\xd4b\xce\x1c\xbfZ\x00\x00\xb4\x8fױt\x99\xdfn\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00R\xf9\xeew\xbf\x1bw\xdcqGLNN\x96>\x85)\x8c\x8f\x8f\xc7\xcd7\xdf\x1c;v\xec(}\n@'\xf4K\x1f\x00\x000,\xdf\xfd\xeew\xe3\x9ak\xae\x89g\x9f}6v\xee\xdc\x19\xbf\xff\xfb\xbf\x1f\xbd^\xaf\xf4Y\xecǎ\x1d;bݺu\xb1q\xe3\xc6زeK\xdcr\xcb-\xb1x\xf1\xe2\xd2g\x01\xb4\x9a'\x00\x00\x80\x14^8\xfe#\"\xee\xbd\xf7\u07b8\xfd\xf6\xdb=\t\xd0@;v\xec\x88k\xae\xb9&6n\xdc\x18\x11\x11\x9b6m\x8a\xab\xae\xba*\xc6\xc7\xc7\v_\x06\xd0n\x02\x00\x00\xd0y/\x1d\xff\x03\"@\xf3\xbct\xfc\x0f\x88\x00\x00\x87N\x00\x00\x00:\xed@\xe3\u007f@\x04h\x8e\x03\x8d\xff\x01\x11\x00\xe0\xd0\b\x00\x00@gM5\xfe\aD\x80\xf2\xa6\x1a\xff\x03\"\x00\xc0\xec\t\x00\x00@'Mw\xfc\x0f\x88\x00\xe5Lw\xfc\x0f\x88\x00\x00\xb3#\x00\x00\x00\x9d3\xd3\xf1? \x02\f\xdfL\xc7\xff\x80\b\x000s\x02\x00\x00\xd0)\xb3\x1d\xff\x03\"\xc0\xf0\xccv\xfc\x0f\x88\x00\x003#\x00\x00\x00\x9dq\xa8\xe3\u007f@\x04\xa8ߡ\x8e\xff\x01\x11\x00`\xfa\x04\x00\x00\xa0\x13\xaa\x1a\xff\x03\"@}\xaa\x1a\xff\x03\"\x00\xc0\xf4\b\x00\x00@\xebU=\xfe\aD\x80\xeaU=\xfe\aD\x00\x80\xa9\t\x00\x00@\xab\xd55\xfe\aD\x80\xea\xd45\xfe\aD\x00\x80\x83\x13\x00\x00\x80֪{\xfc\x0f\x88\x00\x87\xae\xee\xf1? \x02\x00\x1c\x98\x00\x00\x00\xb4Ұ\xc6\xff\x80\b0{\xc3\x1a\xff\x03\"\x00\xc0\xfe\t\x00\x00@\xeb\f{\xfc\x0f\x88\x0037\xec\xf1? \x02\x00\xbc\x9c\x00\x00\x00\xb4J\xa9\xf1? \x02L_\xa9\xf1? \x02\x00\xbc\x98\x00\x00\x00\xb4F\xe9\xf1? \x02L\xad\xf4\xf8\x1f\x10\x01\x00~J\x00\x00\x00Z\xa1)\xe3\u007f@\x048\xb0\xa6\x8c\xff\x01\x11\x00\xe0\xc7\x04\x00\x00\xa0\xf1\x9a6\xfe\aD\x80\x97k\xda\xf8\x1f\x10\x01\x00\x04\x00\x00\xa0\xe1\x9a:\xfe\aD\x80\x9fj\xea\xf8\x1f\x10\x01\x80\xec\x04\x00\x00\xa0\xb1\x9a>\xfe\aD\x80\xe6\x8f\xff\x01\x11\x00\xc8L\x00\x00\x00\x1a\xa9-\xe3\u007f s\x04h\xcb\xf8\x1f\x10\x01\x80\xac\x04\x00\x00\xa0q\xda6\xfe\a2F\x80\xb6\x8d\xff\x01\x11\x00\xc8H\x00\x00\x00\x1a\xa5\xad\xe3\u007f S\x04h\xeb\xf8\x1f\x10\x01\x80l\x04\x00\x00\xa01\xda>\xfe\a2D\x80\xb6\x8f\xff\x01\x11\x00\xc8D\x00\x00\x00\x1a\xa1+\xe3\u007f\xa0\xcb\x11`\xe7Ν\x9d\x18\xff\x03\"\x00\x90\x85\x00\x00\x00\x14\u05f5\xf1?p\xef\xbd\xf7\xc6G>\xf2\x91NE\x80\x9d;w\xc6\xd5W_ݙ\xf1? \x02\x00\x19\b\x00\x00@Q]\x1d\xff\x03ccc\x9d\x89\x00]\x1d\xff\x03\"\x00\xd0u\x02\x00\x00PL\xd7\xc7\xff@\x17\"@\xd7\xc7\xff\x80\b\x00t\x99\x00\x00\x00\x14\x91e\xfc\x0f\xb49\x02d\x19\xff\x03\"\x00\xd0U\x02\x00\x000t\xd9\xc6\xff@\x1b#@\xb6\xf1? \x02\x00]$\x00\x00\x00C\x95u\xfc\x0f\xb4)\x02d\x1d\xff\x03\"\x00\xd05\x02\x00\x0004\xd9\xc7\xff@\x1b\"@\xf6\xf1? \x02\x00]\"\x00\x00\x00Ca\xfc\xbfX\x93#\x80\xf1\xffb\"\x00\xd0\x15\x02\x00\x00P;\xe3\u007f\xff\x9a\x18\x01\x8c\xff\xfd\x13\x01\x80.\x10\x00\x00\x80Z\x19\xff\aפ\b`\xfc\x1f\x9c\b\x00\xb4\x9d\x00\x00\x00\xd4\xc6\xf8\x9f\x9e&D\x00\xe3\u007fzD\x00\xa0\xcd\x04\x00\x00\xa0\x16\xc6\xff̔\x8c\x00\xc6\xff̈\x00@[\t\x00\x00@\xe5\x8c\xff\xd9)\x11\x01\x8c\xff\xd9\x11\x01\x806\x12\x00\x00\x80J\x19\xff\x87f\x98\x11\xc0\xf8?4\"\x00\xd06\x02\x00\x00P\x19\xe3\xbf\x1aÈ\x00\xc6\u007f5D\x00\xa0M\x04\x00\x00\xa02\x9f\xf9\xccg\x8c\xff\x8a\x8c\x8d\x8d\xc5G?\xfa\xd1Z\"\xc0\xf8\xf8x\xbc\xff\xfd\xef7\xfe+\xb2y\xf3\xe6x\xf0\xc1\aK\x9f\x010%\x01\x00\x00\xa8\xccUW]\x15g\x9eyf\xe93:\xe3ӟ\xfet\xe5O\x02\xecܹ3֭[\x17\x9b6m\xaa\xecgf\xd6\xeb\xf5\xe2\xb2\xcb.\x8bs\xcf=\xb7\xf4)\x00S\x12\x00\x00\x80\xca\xf4\xfb\xfd\xb8\xfe\xfa\xebE\x80\nU\xf9v\x00\x8f\xfdWk0\xfe/\xbe\xf8\xe2ҧ\x00L\x8b\x00\x00\x00TJ\x04\xa8^\x15\x11\xc0\xf8\xaf\x96\xf1\x0f\xb4\x91\x00\x00\x00TN\x04\xa8ޡD\x00\xe3\xbfZ\xc6?\xd0V\x02\x00\x00P\v\x11\xa0z\xb3\x89\x00\xc6\u007f\xb5\x8c\u007f\xa0\xcd\x04\x00\x00\xa06\"@\xf5f\x12\x01\x8c\xffj\x19\xff@\xdb\t\x00\x00@\xadD\x80\xeaM'\x02\x18\xff\xd52\xfe\x81.\x10\x00\x00\x80ډ\x00\xd5;X\x040\xfe\xabe\xfc\x03]!\x00\x00\x00C!\x02To\u007f\x11\xc0\xf8\xaf\x96\xf1\x0ft\x89\x00\x00\x00\f\x8d\bP\xbd\x17F\x00\xe3\xbfZ\xc6?\xd05\xfd\xd2\a\x00\x00\xb9\f\"\xc0\x8d7\xde\x18_\xf9\xcaWJ\x9f\xd3\tccc\x11\x11\xf1\xc8#\x8fĦM\x9b\n_\xd3\r\xbd^/.\xbf\xfc\xf2\xb8袋J\x9f\x02P\x19O\x00\x00\x00C\xd7\xef\xf7\xe3\x86\x1bn\xf0$@\x85\xc6\xc6ƌ\xff\x8a\f\xfe\xf3o\xfc\x03]#\x00\x00\x00Ex;\x00M\xe4\xb1\u007f\xa0\xcb\x04\x00\x00\xa0\x18\x11\x80&1\xfe\x81\xae\x13\x00\x00\x80\xa2D\x00\x9a\xc0\xf8\a2\x10\x00\x00\x80\xe2D\x00J2\xfe\x81,\x04\x00\x00\xa0\x11D\x00J0\xfe\x81L\x04\x00\x00\xa01D\x00\x86\xc9\xf8\a\xb2\x11\x00\x00\x80F\x11\x01\x18\x06\xe3\x1f\xc8H\x00\x00\x00\x1aG\x04\xa0N\xc6?\x90\x95\x00\x00\x004\x92\b@\x1d\x8c\u007f 3\x01\x00\x00h,\x11\x80*\x19\xff@v\xfd\xd2\a\x00\xedv\xdf}\xf7ņ\r\x1bJ\x9f\x01E\\\u007f\xfd\xf5\xb1hѢ\xd2gt\xde \x02\xdcx\xe3\x8d\xf1\x95\xaf|\xa5\xf49\xb4T\xaf\u05cb\xcb/\xbf<.\xba\xe8\xa2ҧ\x00\x14#\x00\x00\x87\xe4G?\xfaQ<\xf8\xe0\x83\xa5π\"\xf6\xee\xdd[\xfa\x844\xfa\xfd~\xdcp\xc3\r\xf1\x87\u007f\xf8\x87\xf1\xe5/\u007f\xb9\xf49\xb4\xcc\xe0?\xff\xc6?\x90\x9d\xb7\x00\x00\x00\xad\xe0\xed\x00̆\xc7\xfe\x01~J\x00\x00\x00ZC\x04`&\x8c\u007f\x80\x17\x13\x00\x00\x80V\x11\x01\x98\x0e\xe3\x1f\xe0\xe5\x04\x00\x00\xa0uD\x00\x0e\xc6\xf8\a\xd8?\x01\x00\x00h%\x11\x80\xfd1\xfe\x01\x0eL\x00\x00\x00ZK\x04\xe0\x85\x8c\u007f\x80\x83\x13\x00\x00\x80V\x13\x01\x880\xfe\x01\xa6C\x00\x00\x00ZO\x04\xc8\xcd\xf8\a\x98\x1e\x01\x00\x00\xe8\x04\x11 '\xe3\x1f`\xfa\x04\x00\x00\xa03D\x80\\\x8c\u007f\x80\x99\x11\x00\x00\x80N\x11\x01r0\xfe\x01fN\x00\x00\x00:G\x04\xe86\xe3\x1f`v\x04\x00\x00\xa0\x93D\x80n2\xfe\x01fO\x00\x00\x00:K\x04\xe8\x16\xe3\x1f\xe0\xd0\b\x00\x00@\xa7\x89\x00\xdd`\xfc\x03\x1c:\x01\x00\x00\xe8<\x11\xa0\u074c\u007f\x80j\b\x00\x00@\n\"@;\x19\xff\x00\xd5\x11\x00\x00\x804D\x80v1\xfe\x01\xaa%\x00\x00\x00\xa9\x88\x00\xed`\xfc\x03TO\x00\x00\x00\xd2\x11\x01\x9a\xcd\xf8\a\xa8\x87\x00\x00\x00\xa4$\x024\x93\xf1\x0fP\x1f\x01\x00\x00HK\x04h\x16\xe3\x1f\xa0^\x02\x00\x00\x90\x9a\b\xd0\f\xc6?@\xfd\x04\x00\x00 =\x11\xa0,\xe3\x1f`8\x04\x00\x00\x80\x10\x01J1\xfe\x01\x86G\x00\x00\x00\xf8\t\x11`\xb8\x8c\u007f\x80\xe1\x12\x00\x00\x00^@\x04\x18\x0e\xe3\x1f`\xf8\x04\x00\x00\x80\x97\x10\x01\xeae\xfc\x03\x94!\x00\x00\x00\xec\xc7 \x02\x9c~\xfa\xe9\xa5O\xe9\x9c\xcb/\xbf\xdc\xf8\a(@\x00\x00\x008\x80ݻwǓO>Y\xfa\x8c\xceٲeKLNN\x96>\x03 \x1d\x01\x00\x00`?v\xee\xdc\x19W_}ulܸ\xb1\xf4)\x9d366\x16\x1f\xf9\xc8GD\x00\x80!\x13\x00\x00\x00^\xc2\xf8\xaf\x9f\b\x000|\x02\x00\x00\xc0\v\x18\xff\xc3#\x02\x00\f\x97\x00\x00\x00\xf0\x13\xc6\xff\xf0\x89\x00\x00\xc3#\x00\x00\x00\x84\xf1_\x92\b\x000\x1c\x02\x00\x00\x90\x9e\xf1_\x9e\b\x00P?\x01\x00\x00H\xcd\xf8o\x0e\x11\x00\xa0^\x02\x00\x00\x90\x96\xf1\xdf<\"\x00@}\x04\x00\x00 %㿹D\x00\x80z\b\x00\x00@:\xc6\u007f\xf3\x89\x00\x00\xd5\x13\x00\x00\x80T\x8c\xff\xf6\x10\x01\x00\xaa%\x00\x00\x00i\x18\xff\xed#\x02\x00TG\x00\x00\x00R0\xfe\xdbK\x04\x00\xa8\x86\x00\x00\x00t\x9e\xf1\xdf~\"\x00\xc0\xa1\x13\x00\x00\x80N3\xfe\xbbC\x04\x0084\x02\x00\x00\xd0Y\xc6\u007f\xf7\x88\x00\x00\xb3'\x00\x00\x00\x9dd\xfcw\x97\b\x000;\x02\x00\x00\xd09\xc6\u007f\xf7\x89\x00\x003'\x00\x00\x00\x9db\xfc\xe7!\x02\x00̌\x00\x00\x00t\x86\xf1\x9f\x8f\b\x000}\x02\x00\x00\xd0\t\xc6\u007f^\"\x00\xc0\xf4\b\x00\x00@\xeb\x19\xff\x88\x00\x00S\x13\x00\x00\x80V3\xfe\x19\x10\x01\x00\x0eN\x00\x00\x00Z\xcb\xf8\xe7\xa5D\x00\x80\x03\x13\x00\x00\x80V2\xfe9\x10\x11\x00`\xff\xfa\xa5\x0f\x00\xda\xed\x88#\x8e\x88SO=\xb5\xf4\x19P\xc4ܹsK\x9f\x90\xd6\xf8\xf8x\\u\xd5U\xb1iӦҧ\xd0Pccc1w\xee\xdcx\xef{\xdf\x1b\xbd^\xaf\xf49\x00\x8d \x00\x00\x87d͚5\xb1f͚\xd2g\x00\x89\xecܹ3֭[g\xfc3\xa5\xbb\xef\xbe;\xf6\xee\xdd\x1bW^y\xa5\b\x00\x10\xde\x02\x00\x00\xb4\x88\xc7\xfe\x99)o\a\x00\xf8)\x01\x00\x00h\x05\xe3\x9f\xd9\x12\x01\x00~L\x00\x00\x00\x1a\xcf\xf8\xe7P\x89\x00\x00\x02\x00\x00\xd0p\xc6?U\x11\x01\x80\xec\x04\x00\x00\xa0\xb1\x8c\u007f\xaa&\x02\x00\x99\t\x00\x00@#\x19\xff\xd4E\x04\x00\xb2\x12\x00\x00\x80\xc61\xfe\xa9\x9b\b\x00d$\x00\x00\x00\x8db\xfc3,\"\x00\x90\x8d\x00\x00\x004\x86\xf1ϰ\x89\x00@&\x02\x00\x00\xd0\b\xc6?\xa5\x88\x00@\x16\x02\x00\x00P\x9c\xf1Oi\"\x00\x90\x81\x00\x00\x00\x14e\xfc\xd3\x14\"\x00\xd0u\x02\x00\x00P\x8c\xf1Oӈ\x00@\x97\t\x00\x00@\x11\xc6?M%\x02\x00]%\x00\x00\x00C\xb7cǎx\xff\xfb\xdfo\xfcW\xa4\xd7\xeb\xc5{\xde\xf3\x9e8\xe3\x8c3J\x9f\xd2\x19ccc\xf1\x97\u007f\xf9\x97\"\x00\xd0)\x02\x00\x000T;w\xee\x8ck\xae\xb9&6m\xdaT\xfa\x94N\xe8\xf5z\xf1\xde\xf7\xbe7\xde\xfaַ\xc6\xfa\xf5\xeb\xe3\xcc3\xcf,}Rg\xdc}\xf7ݞ\x04\x00:E\x00\x00\x00\x86\xc6c\xff\xd5\x1a\x8c\xffK.\xb9$\"\"\xfa\xfd~\\\u007f\xfd\xf5\"@\x85\xbc\x1d\x00\xe8\x12\x01\x00\x00\x18\n\xe3\xbfZ/\x1d\xff\x03\"@\xf5D\x00\xa0+\x04\x00\x00\xa0v\xc6\u007f\xb5\x0e4\xfe\aD\x80\xea\x89\x00@\x17\b\x00\x00@\xad\x8c\xffjM5\xfe\aD\x80\xea\x89\x00@\xdb\t\x00\x00@m\x8c\xffjMw\xfc\x0f\x88\x00\xd5\x13\x01\x806\x13\x00\x00\x80Z\x18\xff՚\xe9\xf8\x1f\x10\x01\xaa'\x02\x00m%\x00\x00\x00\x953\xfe\xab5\xdb\xf1? \x02TO\x04\x00\xdaH\x00\x00\x00*e\xfcW\xebP\xc7\xff\x80\bP=\x11\x00h\x1b\x01\x00\x00\xa8\x8c\xf1_\xad\xaa\xc6\xff\x80\bP=\x11\x00h\x13\x01\x00\x00\xa8̟\xfe\xe9\x9f\x1a\xff\x15\xe9\xf5zq\xd9e\x97U6\xfe\a\x06\x11\xe0\x8c3Ψ\xf4\xe7f666\x16\x1b6l(}\x06\xc0\x94\x04\x00\x00\xa02\x97]vY\x1cq\xc4\x11\xa5\xcfh\xbd\xc1\u007f\xfe/\xbe\xf8\xe2Z~~\xbfߏ\xf5\xeb\xd7{\x12\xa0\"g\x9f}v\xac]\xbb\xb6\xf4\x19\x00S\x12\x00\x00\x80\xca,_\xbe\xfb\xec\xb8\xee\xba\xeb\xa2\xdf\xef\x97>\x05`J\x02\x00\x00P)\x11`\xf6\x865\xfe\aD\x80Cc\xfc\x03m#\x00\x00\x00\x95\x13\x01fn\xd8\xe3\u007f@\x04\x98\x1d\xe3\x1fh#\x01\x00\x00\xa8\x85\b0}\xa5\xc6\xff\x80\b03\xc6?\xd0V\x02\x00\x00P\x1b\x11`j\xa5\xc7\xff\x80\b0=\xc6?\xd0f\x02\x00\x00P+\x11\xe0\xc0\x9a2\xfe\aD\x80\x833\xfe\x81\xb6\x13\x00\x00\x80ډ\x00/״\xf1? \x02\xec\x9f\xf1\x0ft\x81\x00\x00\x00\f\x85\b\xf0SM\x1d\xff\x03\"\xc0\x8b\x19\xff@W\b\x00\x00\xc0Ј\x00\xcd\x1f\xff\x03\"\xc0\x8f\x19\xff@\x97\b\x00\x00\xc0Pe\x8e\x00m\x19\xff\x03\xd9#\x80\xf1\x0ft\x8d\x00\x00\x00\f]\xc6\bж\xf1?\x905\x02\x18\xff@\x17\t\x00\x00@\x11\x99\"@[\xc7\xff@\xb6\b`\xfc\x03]%\x00\x00\x00\xc5d\x88\x00m\x1f\xff\x03Y\"\x80\xf1\x0ft\x99\x00\x00\x00\x14\xd5\xe5\bЕ\xf1?\xd0\xf5\b`\xfc\x03]'\x00\x00\x00\xc5u1\x02tm\xfc\x0ft5\x02\x18\xff@\x06\x02\x00\x00\xd0\b]\x8a\x00]\x1d\xff\x03]\x8b\x00\xc6?\x90\x85\x00\x00\x004F\x17\"@\xd7\xc7\xff@W\"\x80\xf1\x0fd\"\x00\x00\x00\x8d\xd2\xe6\b\x90e\xfc\x0f\xb4=\x02\x18\xff@6\x02\x00\x00\xd08m\x8c\x00\xd9\xc6\xff@[#\x80\xf1\x0fd$\x00\x00\x00\x8d4\x88\x00\xa3\xa3\xa3\xa5O\x99R\xd6\xf1?ж\b`\xfc\x03Y\t\x00\x00@c-_\xbe\x01\x00\x00\xe8\x94C\x89\x00\xc6\xffp\x1dj\x040\xfe\x01fF\x00\x00\x00:g6\x11\xc0\xf8/c\xb6\x11\xc0\xf8\a\x989\x01\x00\x00褙D\x00㿬\x99F\x00\xe3\x1f`v\x04\x00\x00\xa0\xb3\xa6\x13\x01\x8c\xfff\x98n\x040\xfe\x01fO\x00\x00\x00:\xed`\x11\xc0\xf8o\x96\xa9\"\x80\xf1\x0fph\x04\x00\x00\xa0\xf3\xf6\x17\x01\x8c\xfff:P\x040\xfe\x01\x0e\x9d\x00\x00\x00\xa4\xf0\xc2\b`\xfc7\xdbK#\x80\xf1\x0fP\x8d~\xe9\x03\x00\x00\x86e\xf9\xf2\xe5q뭷\xc6C\x0f=\x14\x17\\pA\xe9s8\x88A\x04\xf8\xe4'?\x19o}\xeb[\xa3\xdf\xf7\xb2\x15\xe0P\xf9K\n\x00\xa42::j\xfc\xb7D\xbfߏ_\xfd\xd5_-}\x06@gx\v\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\xfd\xd2\a\x00t\xcd=\xf7\xdc\x13\x9f\xfb\xdc\xe7J\x9fQ\xaby\xf3\xe6ş\xff\xf9\x9f\x97>\x03\x00\x80\x19\x10\x00\x00*\xb6}\xfb\xf6\xf8\xfe\xf7\xbf_\xfa\x8cZ\x1dv\xd8a\xa5O\x00\x00`\x86\xbc\x05\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x81~\xe9\x03\x00\x80\x06\xcd\x1e\xb7\x00\x00\x15\x1bIDAT\xeeغukLNN\x96>\x03\x86n\xc1\x82\x05\xb1dɒ\xd2g\x00\x1c\x94\x00\x00\x00T\xe6\xdd\xef~w<\xf3\xcc3\xa5π\xa1[\xbbvm\xac[\xb7\xae\xf4\x19\x00\a\xe5-\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\xf4K\x1f\x004\xdb\u07bd{\xe3\xd1G\x1f-}F\xabl߾\xbd\xf4\t\xb5\x9b\x9c\x9c\x8c\xef\u007f\xff\xfb\xa5\xcfh\x95%K\x96\xc4\xf2\xe5\xcbK\x9f\x01\x00$&\x00\x00\a\xf5\xc4\x13Oĥ\x97^Z\xfa\f\x1afϞ=~/f袋.\x8a+\xae\xb8\xa2\xf4\x19\x00@b\xde\x02\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90\x80\x00\x00\x00\x00\x00\t\b\x00\x00\x00\x00\x90@\xbf\xf4\x01\x00@w\\s\xcd5111Q\xfa\f\x18\xba\x15+V\x94>\x01`J\x02\x00\x00P\x993\xcf<\xb3\xf4\t\x00\xc0\x01x\v\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\xfd\xd2\a\x00\x00ݱiӦx\xfe\xf9\xe7K\x9f\x01C\xb7x\xf1\xe2\x18\x1d\x1d-}\x06\xc0A\t\x00\x00@e\xde\xf7\xbe\xf7\xc53\xcf\xa3U\x8e<\xf2\xc8\xd2'\x00\x00\xc9\t\x00\xc0A-X\xb0 \xce9\xe7\x9c\xd2g\xb4ʖ-[:\x1f\x00FFF\xfc^\x00\x00\xb4\x8c\xb7\x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$ \x00\x00\x00\x00@\x02\x02\x00\x00\x00\x00$\xd0/}\x00\x00\xd0\x1d\u007f\xf4G\u007f\x14\xfb\xf6\xed+}\x06\f\xddҥKK\x9f\x000%\x01\x00\x00\xa8\xcc\xc9'\x9f\\\xfa\x04\x00\xe0\x00\xbc\x05\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x01\x01\x00\x00\x00\x00\x12\x10\x00\x00\x00\x00 \x81~\xe9\x03\x00\xbaf\u07bcy\xb1hѢ\xd2g\xd4j\xfe\xfc\xf9\xa5O\x00\x00`\x86\x04\x00\x80\x8a\xbd\xf3\x9d\xef\x8cw\xbe\xf3\x9d\xa5\xcf\x00\x00\x80\x17\xf1\x16\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\x00\x00\x00\x80\x04\x04\x00\x00\x00\x00H@\x00\xa0\x16\xcf?\xff|\xe9\x13\x00\x00`Ƽ\x8e\xa5\xcb\x04\x00j111Q\xfa\x04\x00\x00\x98\xb1\xbd{\xf7\x96>\x01j#\x00P\v\u007f8\x01\x00h#\xffȢ\xcb\x04\x00j\xe1\x0f'\x00\x00m\xf4\xdcsϕ>\x01j#\x00P\x8b}\xfb\xf6y\n\x00\x00\x80\xd6ٽ{w\xe9\x13\xa06\x02\x00\xb5y\xfa\xe9\xa7K\x9f\x00\x00\x003\xe25,]&\x00P\x9b\xf1\xf1\xf1\xd2'\x00\x00\xc0\x8cx\rK\x97\t\x00\xd4F=\x05\x00\xa0m\x04\x00\xbaL\x00\xa06\xff\xfb\xbf\xff[\xfa\x04\x00\x00\x98\x91\xed۷\x97>\x01j#\x00P\x9b\xad[\xb7\x96>\x01\x00\x00\xa6mbb\"\xb6m\xdbV\xfa\f\xa8\x8d\x00@m\x04\x00\x00\x00\xdad۶m\xf1\xfc\xf3ϗ>\x03j#\x00P\x1b\x01\x00\x00\x806\xf9я~T\xfa\x04\xa8\x95\x00@m~\xf0\x83\x1f\x94>\x01\x00\x00\xa6\xcd\xebW\xbaN\x00\xa06۷o\x8f\xa7\x9ez\xaa\xf4\x19\x00\x000-\x8f>\xfah\xe9\x13\xa0V\x02\x00\xb5\xf2G\x14\x00\x80\xb6زeK\xe9\x13\xa0V\x02\x00\xb5ڼys\xe9\x13\x00\x00`J\x93\x93\x93\xf1\xd8c\x8f\x95>\x03j%\x00P\xab\xef}\xef{\xa5O\x00\x00\x80)m\u07bc9v\xed\xdaU\xfa\f\xa8\x95\x00@\xad\xbe\xf5\xado\x95>\x01\x00\x00\xa6\xf4\xedo\u007f\xbb\xf4\tP;\x01\x80Zm߾\xdd\xd7\x01\x02\x00\xd0x\x02\x00\x19\b\x00\xd4\xee\xe1\x87\x1f.}\x02\x00\x00\x1c\xd0\xe4\xe4\xa4\u05ec\xa4 \x00P\xbbo|\xe3\x1b\xa5O\x00\x00\x80\x03z\xf4\xd1Gc\xfb\xf6\xed\xa5π\xda\t\x00\xd4\xee\x1b\xdf\xf8F<\xff\xfc\xf3\xa5\xcf\x00\x00\x80\xfd\xfa\xfa\u05ff^\xfa\x04\x18\n\x01\x80\xda\xedر#\x1ey\xe4\x91\xd2g\x00\x00\xc0~\t\x00d!\x000\x14\x0f<\xf0@\xe9\x13\x00\x00\xe0e\x9e~\xfai\x1f\x00H\x1a\x02\x00C\xf1\xc5/~1&''K\x9f\x01\x00\x00/\xf2\xa5/})\xf6\xed\xdbW\xfa\f\x18\n\x01\x80\xa1x\xe2\x89'\xbc\r\x00\x00\x80ƹ\xff\xfe\xfbK\x9f\x00C#\x0004_\xf8\xc2\x17J\x9f\x00\x00\x00\xff\xef\u007f\xfe\xe7\u007f|\xfd\x1f\xa9\b\x00\f\xcd\xe7?\xff\xf9x\xee\xb9\xe7J\x9f\x01\x00\x00\x11\x11\xf1O\xff\xf4OަJ*\x02\x00C3>>\xee\xc3\x00\x01\x00h\x84\xc9\xc9\xc9ذaC\xe93`\xa8\x04\x00\x86\xea\xde{\xef-}\x02\x00\x00ă\x0f>\x18\xff\xfd\xdf\xff]\xfa\f\x18*\x01\x80\xa1z衇b\xf3\xe6ͥ\xcf\x00\x00 \xb9O\u007f\xfaӥO\x80\xa1\x13\x00\x18\xbaO~\xf2\x93\xa5O\x00\x00 \xb1\xc7\x1f\u007f<\xbe\xfaկ\x96>\x03\x86N\x00`\xe8\xee\xbb\xef\xbeضm[\xe93\x00\x00Hꮻ\xee\xf2\xe1\u007f\xa4$\x000t\x13\x13\x13q\xf7\xddw\x97>\x03\x00\x80\x84\xb6o\xdf\x1e\x9f\xff\xfc\xe7K\x9f\x01E\b\x00\x14\xf1\x99\xcf|&\x9e|\xf2\xc9\xd2g\x00\x00\x90̝w\xde髩IK\x00\xa0\x88ݻw\xc7\xdf\xfd\xddߕ>\x03\x00\x80D\x9ex\xe2\x89\xf8\xecg?[\xfa\f(F\x00\xa0\x98\u007f\xfc\xc7\u007f\xf4Y\x00\x00\x00\f\xcd\xdf\xfe\xed\xdf\xc6\u07bd{K\x9f\x01\xc5\b\x00\x14\xf3\xdcs\xcf\xc5\xc7?\xfe\xf1\xd2g\x00\x00\x90\xc0c\x8f=\x16\x1b6l(}\x06\x14%\x00P\xd4\x17\xbe\xf0\x85\xf8\xf6\xb7\xbf]\xfa\f\x00\x00:\xeec\x1f\xfbX\xec۷\xaf\xf4\x19P\x94\x00@Q\x93\x93\x93\xf1W\u007f\xf5W\xbe\x86\x05\x00\x80\xda\xfc\xeb\xbf\xfek\xfc\xc7\u007f\xfcG\xe93\xa08\x01\x80\xe2\x1ey\xe4\x91\x18\x1b\x1b+}\x06\x00\x00\x1d\xf4\xec\xb3\xcf\xc6\xc7>\xf6\xb1\xd2g@#\b\x004\xc2\x1dw\xdc\xe1\x03\x01\x01\x00\xa8\xdc_\xff\xf5_{\x9d\t?!\x00\xd0\b\xcf>\xfbl\xdc~\xfb\xed\xa5\xcf\x00\x00\xa0C\xbe\xf7\xbd\xef\xc5=\xf7\xdcS\xfa\fh\f\x01\x80\xc6\xf8\xda\u05fe\x16\xff\xfc\xcf\xff\\\xfa\f\x00\x00:`\xf7\xee\xddq\xf3\xcd7\xfb\xac)x\x01\x01\x80F\xf9\x8b\xbf\xf8\x8b\xf8\xe1\x0f\u007fX\xfa\f\x00\x00Z\xee\xa3\x1f\xfdh<\xfe\xf8\xe3\xa5πF\x11\x00h\x94]\xbbvŇ>\xf4\xa1\x98\x98\x98(}\n\x00\x00-\xf5\xc0\x03\x0f\xc4\xe7>\xf7\xb9\xd2g@\xe3\b\x004\xceƍ\x1b\xe3\x13\x9f\xf8D\xe93\x00\x00h\xa1\xad[\xb7ƭ\xb7\xdeZ\xfa\fh$\x01\x80F\xba뮻\xe2\xfe\xfb\xef/}\x06\x00\x00-\xb2gϞX\xbf~}\x8c\x8f\x8f\x97>\x05\x1aI\x00\xa0\x91&''\xe3\xcf\xfe\xec\xcf\xe2\a?\xf8A\xe9S\x00\x00h\x89[o\xbd5\xfe\xeb\xbf\xfe\xab\xf4\x19\xd0X\x02\x00\x8d\xb5k\u05ee\xf8\x83?\xf8\x83x\xf2\xc9'K\x9f\x02\x00@\xc3\xddy\xe7\x9dq\xdf}\xf7\x95>\x03\x1aM\x00\xa0Ѷn\xdd\x1a\x1f\xfc\xe0\ac\xf7\xeeݥO\x01\x00\xe0\xffڻ\u007f\xd0*\xef=\x8e\xe3\xdfsc\x8a\x16LA\x11\xbbY\xab\x82\"\x0eZ\x15K\x97\xd0\xe2\xeaVZ\xe8\"8t\x12\a\xff\x80Y\xbc\xa3(8T\x1c\xa5\xd0\xe8\xe2 )\x06Z\x02EQ\xa4PZZ\xd1\f\x91\u0600\xa2\x96\x86T\x135*&\xa6˥\\ʥ\x88\xd7\xf8$\xe7\xf3z\xc1\xd9?Ӂ\xf3>\xcf\xf3\xfb\xcdQ\x17.\\\xa8/\xbf\xfc\xb2\xe9\x190\xe7\t\x00\xccyCCCu\xf8\xf0\xe1z\xfe\xfcy\xd3S\x00\x00\x98c\xae\\\xb9R\x87\x0f\x1f\xae\x99\x99\x99\xa6\xa7\xc0\x9c'\x000/\\\xbat\xa9\x8e\x1e=\xea\x8b\x1d\x00\x80\xbf\f\x0f\x0fסC\x87\xeaٳgMO\x81yA\x00`\xde\x18\x18\x18\xa8\xe3Ǐ7=\x03\x00\x809`dd\xa4\xf6\xef\xdf_\x0f\x1e7E\xc1K\xf0\n\x00\xf3R\u007f\u007f\u007f\x1d9r\xc4\xc1\x80\x00\x00A\x06\a\ak\xef\u07bd\xfe\xf9\x87\x97$\x000o\r\f\f\xd4\xc1\x83\akrr\xb2\xe9)\x00\x00̲˗/\xd7\xfe\xfd\xfb\xeb\xe1ÇMO\x81yK\x00`^\xfb\xf1\xc7\x1fkϞ=5::\xda\xf4\x14\x00\x00f\xc9ٳg\xebСC\xf5\xf4\xe9Ӧ\xa7\xc0\xbc&\x000\xef\xfd\xfa믵{\xf7\xee\xba~\xfdz\xd3S\x00\x00x\x85\xa6\xa6\xa6\xea\x8b/\xbe\xa8\x13'N\xb8\x0e\x1a^\x01\x87\x00\xd2\x16&''k``\xa0\x96,YRk֬iz\x0e\x00\x00\xff\xa7\xb1\xb1\xb1\xea\xe9\xe9\xa9K\x97.5=\x05چ\x00@\xdbx\xfe\xfcy}\xff\xfd\xf7u\xef\u07bdڴiSutt4=\t\x00\x80\x97p\xe5ʕ:p\xe0@ݼy\xb3\xe9)\xd0VZ\x1f~\xf8\xa1gih;+V\xac\xa8\x9e\x9e\x9eZ\xbdzu\xd3S\x00\x00xA\xd3\xd3\xd3u\xfa\xf4\xe9\xea\xed\xedu\xdb\x13\xcc\x02O\x00Ж\xc6\xc7\xc7k``\xa0\x16-ZT\xeb֭\xabV\xab\xd5\xf4$\x00\x00\xfe\xc1\xed۷\xab\xa7\xa7\xa7\xbe\xfb\xee;\xef\xfb\xc3,\xf1\x04\x00mo\xfd\xfa\xf5\xb5w\xef\xdeZ\xb1bE\xd3S\x00\x00\xf8\x9b\xe9\xe9\xe9\xfa\xfa\xeb\xaf\xeb\xe4ɓ\xf5\xe4ɓ\xa6\xe7@[\x13\x00\x88\xd0\xd9\xd9Y\x9f}\xf6Y}\xfa\xe9\xa7\xd5\xd9\xd9\xd9\xf4\x1c\x00\x00\xaajhh\xa8\x8e\x1d;V\xc3\xc3\xc3MO\x81\b\x02\x00Q\x96-[V\xbbv\xed\xaa\xed۷7=\x05\x00 \xd6\xc4\xc4D\xf5\xf6\xf6V__\x9fw\xfd\xe15\x12\x00\x88\xb4iӦ\xfa\xfc\xf3\xcf\x1d\x12\b\x00\xf0\x1a=}\xfa\xb4\xfa\xfa\xfa\xeaԩS599\xd9\xf4\x1c\x88#\x00\x10\xab\xd5jնm\xdbj\xe7ΝB\x00\x00\xc0,\x9a\x9a\x9a\xaao\xbf\xfd\xb6\xbe\xfa\xea\xab\x1a\x1b\x1bkz\x0e\xc4\x12\x00\x88\xd7j\xb5\xaa\xbb\xbb\xbb>\xf9\xe4\x93Z\xb3fM\xd3s\x00\x00\xda\xc6\xe3Ǐ\xeb\x9bo\xbe\xa93g\xce\xd4\xe8\xe8h\xd3s \x9e\x00\x00\xffe\xe3ƍ\xf5\xf1\xc7\x1f\xd7֭[]\x1d\b\x00\xf0\x92\xc6\xc6ƪ\xaf\xaf\xafΝ;W\x0f\x1e\xfa\xa8v\xec\xd8Q˗/oz\x0e\x00\xc0\x9c733S?\xff\xfcs\xf5\xf7\xf7\xd7\xe5˗kjj\xaa\xe9I\xc0\xdf\b\x00\xf0\x0f:::j˖-\xd5\xdd\xdd]\x1f|\xf0A\xbd\xf9\xe6\x9bMO\x02\x00\x98S\x86\x86\x86\xea\u0085\vu\xfe\xfcy\x8f\xf9\xc3\x1c'\x00\xc0\vz\xe3\x8d7j\xeb֭\xf5\xfe\xfb\xefז-[j\xe9ҥMO\x02\x00x\xed\xa6\xa7\xa7\xebڵk\xf5\xc3\x0f?\xd4ŋ\x17\xebΝ;MO\x02^\x90\x00\x00/\xa1\xd5jժU\xabj\xf3\xe6͵aÆZ\xbf~}-^\xbc\xb8\xe9Y\x00\x00\xaf\xdc\xcc\xccL\x8d\x8c\x8c\xd4իW\xeb\x97_~\xa9\x9f~\xfa\xa9\x1e=z\xd4\xf4,\xe0%\b\x00\xf0\n\xb4Z\xadz\xe7\x9dwj\xedڵ\xf5\xee\xbb\xef\xd6ʕ+kժU\xd5\xd5\xd5\xd5\xf44\x00\x80\x176==]\xb7nݪ\x91\x91\x91\xbaq\xe3Fݸq\xa3\x06\a\a\xfd\xe0\x876!\x00\xc0,\xea\xeaꪷ\xdf~\xfb\xafϒ%K\xaa\xab\xab\xab\xdez\xeb\xad\xea\xea\xea\xaa\x05\v\x16\xd4\u0085\v\xab\xb3\xb3\xb3\xe9\xa9\x00@\x9b{\xf8\xf0a\xcd\xcc\xccԣG\x8fj||\xbc\xc6\xc7\xc7kbb\xa2~\xff\xfd\xf7\xfa\xed\xb7\xdf\xea\xeeݻ5::\xea\xf0>hc\v\x9a\x1e\x00\xedlbb\xa2&&&\xea\xfa\xf5\xebMO\x01\x00\x00\xc2\xfd\xab\xe9\x01\x00\x00\x00\xc0\xec\x13\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\b\x00\x00\x00\x00\x10@\x00\x00\x00\x00\x80\x00\x02\x00\x00\x00\x00\x04\x10\x00\x00\x00\x00 \x80\x00\x00\x00\x00\x00\x01\x04\x00\x00\x00\x00\b \x00\x00\x00\x00@\x00\x01\x00\x00\x00\x00\x02\xfc\t\r~\xbc\x96^\x8a$?\x00\x00\x00\x00IEND\xaeB`\x82"), 12 | } 13 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/fyne-io/calculator 2 | 3 | go 1.17 4 | 5 | require ( 6 | fyne.io/fyne/v2 v2.6.0 7 | github.com/Knetic/govaluate v3.0.0+incompatible 8 | github.com/stretchr/testify v1.10.0 9 | ) 10 | 11 | require ( 12 | fyne.io/systray v1.11.0 // indirect 13 | github.com/BurntSushi/toml v1.4.0 // indirect 14 | github.com/davecgh/go-spew v1.1.1 // indirect 15 | github.com/fredbi/uri v1.1.0 // indirect 16 | github.com/fsnotify/fsnotify v1.7.0 // indirect 17 | github.com/fyne-io/gl-js v0.1.0 // indirect 18 | github.com/fyne-io/glfw-js v0.2.0 // indirect 19 | github.com/fyne-io/image v0.1.1 // indirect 20 | github.com/fyne-io/oksvg v0.1.0 // indirect 21 | github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 // indirect 22 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20240506104042-037f3cc74f2a // indirect 23 | github.com/go-text/render v0.2.0 // indirect 24 | github.com/go-text/typesetting v0.2.1 // indirect 25 | github.com/godbus/dbus/v5 v5.1.0 // indirect 26 | github.com/hack-pad/go-indexeddb v0.3.2 // indirect 27 | github.com/hack-pad/safejs v0.1.0 // indirect 28 | github.com/jeandeaual/go-locale v0.0.0-20241217141322-fcc2cadd6f08 // indirect 29 | github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 // indirect 30 | github.com/kr/text v0.2.0 // indirect 31 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 // indirect 32 | github.com/nicksnyder/go-i18n/v2 v2.5.1 // indirect 33 | github.com/pmezard/go-difflib v1.0.0 // indirect 34 | github.com/rymdport/portal v0.4.1 // indirect 35 | github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c // indirect 36 | github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef // indirect 37 | github.com/yuin/goldmark v1.7.8 // indirect 38 | golang.org/x/image v0.24.0 // indirect 39 | golang.org/x/net v0.35.0 // indirect 40 | golang.org/x/sys v0.30.0 // indirect 41 | golang.org/x/text v0.22.0 // indirect 42 | gopkg.in/yaml.v3 v3.0.1 // indirect 43 | ) 44 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 2 | cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= 3 | cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= 4 | cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= 5 | cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= 6 | cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= 7 | cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= 8 | cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= 9 | cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= 10 | cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= 11 | cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= 12 | cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= 13 | cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= 14 | cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= 15 | cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= 16 | cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= 17 | cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= 18 | cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= 19 | cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= 20 | cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= 21 | cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= 22 | cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= 23 | cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= 24 | cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= 25 | cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= 26 | cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= 27 | cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= 28 | cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= 29 | cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= 30 | cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= 31 | cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= 32 | cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= 33 | cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= 34 | cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= 35 | cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= 36 | cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= 37 | cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= 38 | dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= 39 | dmitri.shuralyov.com/gpu/mtl v0.0.0-20221208032759-85de2813cf6b/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= 40 | fyne.io/fyne/v2 v2.6.0 h1:Rywo9yKYN4qvNuvkRuLF+zxhJYWbIFM+m4N4KV4p1pQ= 41 | fyne.io/fyne/v2 v2.6.0/go.mod h1:YZt7SksjvrSNJCwbWFV32WON3mE1Sr7L41D29qMZ/lU= 42 | fyne.io/systray v1.11.0 h1:D9HISlxSkx+jHSniMBR6fCFOUjk1x/OOOJLa9lJYAKg= 43 | fyne.io/systray v1.11.0/go.mod h1:RVwqP9nYMo7h5zViCBHri2FgjXF7H2cub7MAq4NSoLs= 44 | github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= 45 | github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= 46 | github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= 47 | github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= 48 | github.com/Knetic/govaluate v3.0.0+incompatible h1:7o6+MAPhYTCF0+fdvoz1xDedhRb4f6s9Tn1Tt7/WTEg= 49 | github.com/Knetic/govaluate v3.0.0+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= 50 | github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= 51 | github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= 52 | github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= 53 | github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= 54 | github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= 55 | github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= 56 | github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= 57 | github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= 58 | github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= 59 | github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 60 | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= 61 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 62 | github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 63 | github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 64 | github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= 65 | github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= 66 | github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= 67 | github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= 68 | github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= 69 | github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= 70 | github.com/felixge/fgprof v0.9.3 h1:VvyZxILNuCiUCSXtPtYmmtGvb65nqXh2QFWc0Wpf2/g= 71 | github.com/felixge/fgprof v0.9.3/go.mod h1:RdbpDgzqYVh/T9fPELJyV7EYJuHB55UTEULNun8eiPw= 72 | github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= 73 | github.com/fredbi/uri v1.1.0 h1:OqLpTXtyRg9ABReqvDGdJPqZUxs8cyBDOMXBbskCaB8= 74 | github.com/fredbi/uri v1.1.0/go.mod h1:aYTUoAXBOq7BLfVJ8GnKmfcuURosB1xyHDIfWeC/iW4= 75 | github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= 76 | github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= 77 | github.com/fyne-io/gl-js v0.1.0 h1:8luJzNs0ntEAJo+8x8kfUOXujUlP8gB3QMOxO2mUdpM= 78 | github.com/fyne-io/gl-js v0.1.0/go.mod h1:ZcepK8vmOYLu96JoxbCKJy2ybr+g1pTnaBDdl7c3ajI= 79 | github.com/fyne-io/glfw-js v0.2.0 h1:8GUZtN2aCoTPNqgRDxK5+kn9OURINhBEBc7M4O1KrmM= 80 | github.com/fyne-io/glfw-js v0.2.0/go.mod h1:Ri6te7rdZtBgBpxLW19uBpp3Dl6K9K/bRaYdJ22G8Jk= 81 | github.com/fyne-io/image v0.1.1 h1:WH0z4H7qfvNUw5l4p3bC1q70sa5+YWVt6HCj7y4VNyA= 82 | github.com/fyne-io/image v0.1.1/go.mod h1:xrfYBh6yspc+KjkgdZU/ifUC9sPA5Iv7WYUBzQKK7JM= 83 | github.com/fyne-io/oksvg v0.1.0 h1:7EUKk3HV3Y2E+qypp3nWqMXD7mum0hCw2KEGhI1fnBw= 84 | github.com/fyne-io/oksvg v0.1.0/go.mod h1:dJ9oEkPiWhnTFNCmRgEze+YNprJF7YRbpjgpWS4kzoI= 85 | github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71 h1:5BVwOaUSBTlVZowGO6VZGw2H/zl9nrd3eCZfYV+NfQA= 86 | github.com/go-gl/gl v0.0.0-20231021071112-07e5d0ea2e71/go.mod h1:9YTyiznxEY1fVinfM7RvRcjRHbw2xLBJ3AAGIT0I4Nw= 87 | github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 h1:QbL/5oDUmRBzO9/Z7Seo6zf912W/a6Sr4Eu0G/3Jho0= 88 | github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= 89 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 90 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 91 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20240506104042-037f3cc74f2a h1:vxnBhFDDT+xzxf1jTJKMKZw3H0swfWk9RpWbBbDK5+0= 92 | github.com/go-gl/glfw/v3.3/glfw v0.0.0-20240506104042-037f3cc74f2a/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= 93 | github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= 94 | github.com/go-text/render v0.2.0 h1:LBYoTmp5jYiJ4NPqDc2pz17MLmA3wHw1dZSVGcOdeAc= 95 | github.com/go-text/render v0.2.0/go.mod h1:CkiqfukRGKJA5vZZISkjSYrcdtgKQWRa2HIzvwNN5SU= 96 | github.com/go-text/typesetting v0.2.0/go.mod h1:2+owI/sxa73XA581LAzVuEBZ3WEEV2pXeDswCH/3i1I= 97 | github.com/go-text/typesetting v0.2.1 h1:x0jMOGyO3d1qFAPI0j4GSsh7M0Q3Ypjzr4+CEVg82V8= 98 | github.com/go-text/typesetting v0.2.1/go.mod h1:mTOxEwasOFpAMBjEQDhdWRckoLLeI/+qrQeBCTGEt6M= 99 | github.com/go-text/typesetting-utils v0.0.0-20240317173224-1986cbe96c66/go.mod h1:DDxDdQEnB70R8owOx3LVpEFvpMK9eeH1o2r0yZhFI9o= 100 | github.com/go-text/typesetting-utils v0.0.0-20241103174707-87a29e9e6066 h1:qCuYC+94v2xrb1PoS4NIDe7DGYtLnU2wWiQe9a1B1c0= 101 | github.com/go-text/typesetting-utils v0.0.0-20241103174707-87a29e9e6066/go.mod h1:DDxDdQEnB70R8owOx3LVpEFvpMK9eeH1o2r0yZhFI9o= 102 | github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= 103 | github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= 104 | github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= 105 | github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= 106 | github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 107 | github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 108 | github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= 109 | github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 110 | github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= 111 | github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= 112 | github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= 113 | github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= 114 | github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= 115 | github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= 116 | github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 117 | github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 118 | github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= 119 | github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= 120 | github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= 121 | github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= 122 | github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= 123 | github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= 124 | github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= 125 | github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= 126 | github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= 127 | github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= 128 | github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 129 | github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 130 | github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 131 | github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= 132 | github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 133 | github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 134 | github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= 135 | github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 136 | github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 137 | github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 138 | github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 139 | github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 140 | github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 141 | github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= 142 | github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= 143 | github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= 144 | github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= 145 | github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= 146 | github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= 147 | github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 148 | github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 149 | github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 150 | github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 151 | github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= 152 | github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 153 | github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 154 | github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= 155 | github.com/google/pprof v0.0.0-20211214055906-6f57359322fd h1:1FjCyPC+syAzJ5/2S8fqdZK1R22vvA0J7JZKcuOIQ7Y= 156 | github.com/google/pprof v0.0.0-20211214055906-6f57359322fd/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= 157 | github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= 158 | github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= 159 | github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= 160 | github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= 161 | github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= 162 | github.com/hack-pad/go-indexeddb v0.3.2 h1:DTqeJJYc1usa45Q5r52t01KhvlSN02+Oq+tQbSBI91A= 163 | github.com/hack-pad/go-indexeddb v0.3.2/go.mod h1:QvfTevpDVlkfomY498LhstjwbPW6QC4VC/lxYb0Kom0= 164 | github.com/hack-pad/safejs v0.1.0 h1:qPS6vjreAqh2amUqj4WNG1zIw7qlRQJ9K10eDKMCnE8= 165 | github.com/hack-pad/safejs v0.1.0/go.mod h1:HdS+bKF1NrE72VoXZeWzxFOVQVUSqZJAG0xNCnb+Tio= 166 | github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= 167 | github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= 168 | github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= 169 | github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= 170 | github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= 171 | github.com/jackmordaunt/icns/v2 v2.2.6/go.mod h1:DqlVnR5iafSphrId7aSD06r3jg0KRC9V6lEBBp504ZQ= 172 | github.com/jeandeaual/go-locale v0.0.0-20241217141322-fcc2cadd6f08 h1:wMeVzrPO3mfHIWLZtDcSaGAe2I4PW9B/P5nMkRSwCAc= 173 | github.com/jeandeaual/go-locale v0.0.0-20241217141322-fcc2cadd6f08/go.mod h1:ZDXo8KHryOWSIqnsb/CiDq7hQUYryCgdVnxbj8tDG7o= 174 | github.com/jezek/xgb v1.0.0/go.mod h1:nrhwO0FX/enq75I7Y7G8iN1ubpSGZEiA3v9e9GyRFlk= 175 | github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= 176 | github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= 177 | github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= 178 | github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25 h1:YLvr1eE6cdCqjOe972w/cYF+FjW34v27+9Vo5106B4M= 179 | github.com/jsummers/gobmp v0.0.0-20230614200233-a9de23ed2e25/go.mod h1:kLgvv7o6UM+0QSf0QjAse3wReFDsb9qbZJdfexWlrQw= 180 | github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= 181 | github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= 182 | github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= 183 | github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= 184 | github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= 185 | github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= 186 | github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= 187 | github.com/lucor/goinfo v0.9.0/go.mod h1:L6m6tN5Rlova5Z83h1ZaKsMP1iiaoZ9vGTNzu5QKOD4= 188 | github.com/mcuadros/go-version v0.0.0-20190830083331-035f6764e8d2/go.mod h1:76rfSfYPWj01Z85hUf/ituArm797mNKcvINh1OlsZKo= 189 | github.com/natefinch/atomic v1.0.1/go.mod h1:N/D/ELrljoqDyT3rZrsUmtsuzvHkeB/wWjHV22AZRbM= 190 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= 191 | github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= 192 | github.com/nicksnyder/go-i18n/v2 v2.5.1 h1:IxtPxYsR9Gp60cGXjfuR/llTqV8aYMsC472zD0D1vHk= 193 | github.com/nicksnyder/go-i18n/v2 v2.5.1/go.mod h1:DrhgsSDZxoAfvVrBVLXoxZn/pN5TXqaDbq7ju94viiQ= 194 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= 195 | github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= 196 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 197 | github.com/pkg/profile v1.7.0 h1:hnbDkaNWPCLMO9wGLdBFTIZvzDrDfBM2072E1S9gJkA= 198 | github.com/pkg/profile v1.7.0/go.mod h1:8Uer0jas47ZQMJ7VD+OHknK4YDY07LPUC6dEvqDjvNo= 199 | github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= 200 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 201 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 202 | github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= 203 | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= 204 | github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= 205 | github.com/rymdport/portal v0.4.1 h1:2dnZhjf5uEaeDjeF/yBIeeRo6pNI2QAKm7kq1w/kbnA= 206 | github.com/rymdport/portal v0.4.1/go.mod h1:kFF4jslnJ8pD5uCi17brj/ODlfIidOxlgUDTO5ncnC4= 207 | github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= 208 | github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= 209 | github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c h1:km8GpoQut05eY3GiYWEedbTT0qnSxrCjsVbb7yKY1KE= 210 | github.com/srwiley/oksvg v0.0.0-20221011165216-be6e8873101c/go.mod h1:cNQ3dwVJtS5Hmnjxy6AgTPd0Inb3pW05ftPSX7NZO7Q= 211 | github.com/srwiley/rasterx v0.0.0-20210519020934-456a8d69b780/go.mod h1:mvWM0+15UqyrFKqdRjY6LuAVJR0HOVhJlEgZ5JWtSWU= 212 | github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef h1:Ch6Q+AZUxDBCVqdkI8FSpFyZDtCVBc2VmejdNrm5rRQ= 213 | github.com/srwiley/rasterx v0.0.0-20220730225603-2ab79fcdd4ef/go.mod h1:nXTWP6+gD5+LUJ8krVhhoeHjvHTutPxMYl5SvkcnJNE= 214 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 215 | github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= 216 | github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= 217 | github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= 218 | github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= 219 | github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= 220 | github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 221 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 222 | github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 223 | github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= 224 | github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= 225 | github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= 226 | github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= 227 | github.com/urfave/cli/v2 v2.4.0/go.mod h1:NX9W0zmTvedE5oDoOMs2RTC8RvdK98NTYZE5LbaEYPg= 228 | github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 229 | github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 230 | github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 231 | github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= 232 | github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= 233 | github.com/yuin/goldmark v1.7.8 h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic= 234 | github.com/yuin/goldmark v1.7.8/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E= 235 | go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= 236 | go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= 237 | go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 238 | go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 239 | go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= 240 | go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= 241 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 242 | golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 243 | golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 244 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 245 | golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 246 | golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= 247 | golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= 248 | golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= 249 | golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= 250 | golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= 251 | golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= 252 | golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= 253 | golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= 254 | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 255 | golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= 256 | golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= 257 | golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= 258 | golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= 259 | golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= 260 | golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 261 | golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 262 | golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= 263 | golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= 264 | golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= 265 | golang.org/x/exp/shiny v0.0.0-20230817173708-d852ddb80c63/go.mod h1:UH99kUObWAZkDnWqppdQe5ZhPYESUw8I0zVV1uWBR+0= 266 | golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= 267 | golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= 268 | golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM= 269 | golang.org/x/image v0.3.0/go.mod h1:fXd9211C/0VTlYuAcOhW8dY/RtEJqODXOWBDpmYBf+A= 270 | golang.org/x/image v0.14.0/go.mod h1:HUYqC05R2ZcZ3ejNQsIHQDQiwWM4JBqmm6MKANTp4LE= 271 | golang.org/x/image v0.24.0 h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ= 272 | golang.org/x/image v0.24.0/go.mod h1:4b/ITuLfqYq1hqZcjofwctIhi7sZh2WaCjvsBNjjya8= 273 | golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 274 | golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= 275 | golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= 276 | golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 277 | golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 278 | golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 279 | golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= 280 | golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= 281 | golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 282 | golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 283 | golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 284 | golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= 285 | golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= 286 | golang.org/x/mobile v0.0.0-20201217150744-e6ae53a27f4f/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4= 287 | golang.org/x/mobile v0.0.0-20231127183840-76ac6878050a/go.mod h1:Ede7gF0KGoHlj822RtphAHK1jLdrcuRBZg0sF1Q+SPc= 288 | golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= 289 | golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= 290 | golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= 291 | golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= 292 | golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 293 | golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 294 | golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 295 | golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 296 | golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 297 | golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= 298 | golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= 299 | golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 300 | golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 301 | golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= 302 | golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 303 | golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 304 | golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 305 | golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 306 | golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 307 | golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 308 | golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 309 | golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 310 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 311 | golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 312 | golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 313 | golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= 314 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 315 | golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 316 | golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 317 | golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 318 | golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 319 | golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 320 | golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 321 | golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 322 | golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 323 | golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 324 | golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 325 | golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 326 | golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 327 | golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= 328 | golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 329 | golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 330 | golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= 331 | golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 332 | golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= 333 | golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 334 | golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 335 | golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= 336 | golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 337 | golang.org/x/net v0.0.0-20211118161319-6a13c67c3ce4/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= 338 | golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= 339 | golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= 340 | golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= 341 | golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= 342 | golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= 343 | golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= 344 | golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= 345 | golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= 346 | golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= 347 | golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= 348 | golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= 349 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 350 | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 351 | golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 352 | golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 353 | golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= 354 | golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 355 | golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 356 | golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 357 | golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= 358 | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 359 | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 360 | golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 361 | golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 362 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 363 | golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 364 | golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 365 | golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 366 | golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 367 | golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 368 | golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 369 | golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 370 | golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= 371 | golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 372 | golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 373 | golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 374 | golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 375 | golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= 376 | golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 377 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 378 | golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 379 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 380 | golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 381 | golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 382 | golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 383 | golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 384 | golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 385 | golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 386 | golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 387 | golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 388 | golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 389 | golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 390 | golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 391 | golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 392 | golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 393 | golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 394 | golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 395 | golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 396 | golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 397 | golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 398 | golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 399 | golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 400 | golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 401 | golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 402 | golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 403 | golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 404 | golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 405 | golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 406 | golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 407 | golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 408 | golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 409 | golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 410 | golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 411 | golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 412 | golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 413 | golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 414 | golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 415 | golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 416 | golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 417 | golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 418 | golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 419 | golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 420 | golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 421 | golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 422 | golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= 423 | golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 424 | golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 425 | golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 426 | golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 427 | golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= 428 | golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 429 | golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= 430 | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= 431 | golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= 432 | golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= 433 | golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= 434 | golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= 435 | golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= 436 | golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= 437 | golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= 438 | golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= 439 | golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= 440 | golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= 441 | golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 442 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 443 | golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 444 | golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= 445 | golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 446 | golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 447 | golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= 448 | golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= 449 | golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 450 | golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= 451 | golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= 452 | golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= 453 | golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 454 | golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= 455 | golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= 456 | golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= 457 | golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= 458 | golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 459 | golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 460 | golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= 461 | golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 462 | golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= 463 | golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= 464 | golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 465 | golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 466 | golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= 467 | golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 468 | golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 469 | golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= 470 | golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 471 | golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 472 | golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= 473 | golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 474 | golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 475 | golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 476 | golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 477 | golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 478 | golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 479 | golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 480 | golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= 481 | golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 482 | golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 483 | golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 484 | golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 485 | golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 486 | golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 487 | golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 488 | golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 489 | golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 490 | golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 491 | golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 492 | golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= 493 | golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= 494 | golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= 495 | golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 496 | golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 497 | golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 498 | golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= 499 | golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 500 | golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 501 | golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= 502 | golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= 503 | golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 504 | golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 505 | golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 506 | golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 507 | golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= 508 | golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= 509 | golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= 510 | golang.org/x/tools v0.5.0/go.mod h1:N+Kgy78s5I24c24dU8OfWNEotWjutIs8SnJvn5IDq+k= 511 | golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= 512 | golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= 513 | golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= 514 | golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= 515 | golang.org/x/tools/go/vcs v0.1.0-deprecated/go.mod h1:zUrvATBAvEI9535oC0yWYsLsHIV4Z7g63sNPVMtuBy8= 516 | golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 517 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 518 | golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 519 | golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 520 | google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= 521 | google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= 522 | google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= 523 | google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= 524 | google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 525 | google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 526 | google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= 527 | google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 528 | google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 529 | google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 530 | google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 531 | google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= 532 | google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= 533 | google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= 534 | google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= 535 | google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= 536 | google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= 537 | google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= 538 | google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= 539 | google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= 540 | google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 541 | google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= 542 | google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= 543 | google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 544 | google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 545 | google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 546 | google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= 547 | google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 548 | google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 549 | google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 550 | google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= 551 | google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 552 | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= 553 | google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= 554 | google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 555 | google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 556 | google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 557 | google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 558 | google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 559 | google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= 560 | google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= 561 | google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 562 | google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 563 | google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 564 | google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 565 | google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 566 | google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 567 | google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 568 | google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= 569 | google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= 570 | google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= 571 | google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= 572 | google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 573 | google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 574 | google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 575 | google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 576 | google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 577 | google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 578 | google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 579 | google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 580 | google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 581 | google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= 582 | google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= 583 | google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= 584 | google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= 585 | google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= 586 | google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= 587 | google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 588 | google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 589 | google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= 590 | google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= 591 | google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= 592 | google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= 593 | google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= 594 | google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= 595 | google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= 596 | google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= 597 | google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= 598 | google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= 599 | google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= 600 | google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= 601 | google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= 602 | google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= 603 | google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 604 | google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 605 | google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= 606 | google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= 607 | google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= 608 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 609 | gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 610 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= 611 | gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 612 | gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= 613 | gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 614 | gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 615 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 616 | gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= 617 | gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 618 | honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 619 | honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 620 | honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 621 | honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= 622 | honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= 623 | honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= 624 | honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= 625 | rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= 626 | rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= 627 | rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= 628 | -------------------------------------------------------------------------------- /img/calc-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fyne-io/calculator/6b38ebde6ed956e9d83ed3ce2ef6350fe3e6b0ea/img/calc-dark.png -------------------------------------------------------------------------------- /img/calc-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fyne-io/calculator/6b38ebde6ed956e9d83ed3ce2ef6350fe3e6b0ea/img/calc-light.png -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | // Package main launches the calculator app 2 | // 3 | //go:generate fyne bundle -o data.go Icon.png 4 | package main 5 | 6 | import "fyne.io/fyne/v2/app" 7 | 8 | func main() { 9 | app := app.New() 10 | app.SetIcon(resourceIconPng) 11 | 12 | c := newCalculator() 13 | c.loadUI(app) 14 | app.Run() 15 | } 16 | --------------------------------------------------------------------------------