Codebase list golang-github-vbauerster-mpb / 337afa2
Import golang-github-vbauerster-mpb_3.4.0.orig.tar.xz [dgit import orig golang-github-vbauerster-mpb_3.4.0.orig.tar.xz] Dmitry Smirnov 6 years ago
59 changed file(s) with 5028 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 # Test binary, build with `go test -c`
1 *.test
2
3 # Output of the go coverage tool, specifically when used with LiteIDE
4 *.out
0 language: go
1 sudo: false
2 go:
3 - 1.10.x
4 - tip
5
6 before_install:
7 - go get -t -v ./...
8
9 script:
10 - go test -race -coverprofile=coverage.txt -covermode=atomic
11
12 after_success:
13 - bash <(curl -s https://codecov.io/bash)
0 BSD 3-Clause License
1
2 Copyright (C) 2016-2018 Vladimir Bauer
3 All rights reserved.
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
8 * Redistributions of source code must retain the above copyright notice, this
9 list of conditions and the following disclaimer.
10
11 * Redistributions in binary form must reproduce the above copyright notice,
12 this list of conditions and the following disclaimer in the documentation
13 and/or other materials provided with the distribution.
14
15 * Neither the name of the copyright holder nor the names of its
16 contributors may be used to endorse or promote products derived from
17 this software without specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0 # Multi Progress Bar
1
2 [![GoDoc](https://godoc.org/github.com/vbauerster/mpb?status.svg)](https://godoc.org/github.com/vbauerster/mpb)
3 [![Build Status](https://travis-ci.org/vbauerster/mpb.svg?branch=master)](https://travis-ci.org/vbauerster/mpb)
4 [![Go Report Card](https://goreportcard.com/badge/github.com/vbauerster/mpb)](https://goreportcard.com/report/github.com/vbauerster/mpb)
5 [![codecov](https://codecov.io/gh/vbauerster/mpb/branch/master/graph/badge.svg)](https://codecov.io/gh/vbauerster/mpb)
6
7 **mpb** is a Go lib for rendering progress bars in terminal applications.
8
9 ## Features
10
11 * __Multiple Bars__: Multiple progress bars are supported
12 * __Dynamic Total__: [Set total](https://github.com/vbauerster/mpb/issues/9#issuecomment-344448984) while bar is running
13 * __Dynamic Add/Remove__: Dynamically add or remove bars
14 * __Cancellation__: Cancel whole rendering process
15 * __Predefined Decorators__: Elapsed time, [ewma](https://github.com/VividCortex/ewma) based ETA, Percentage, Bytes counter
16 * __Decorator's width sync__: Synchronized decorator's width among multiple bars
17
18 ## Installation
19
20 ```sh
21 go get github.com/vbauerster/mpb
22 ```
23
24 _Note:_ it is preferable to go get from github.com, rather than gopkg.in. See issue [#11](https://github.com/vbauerster/mpb/issues/11).
25
26 ## Usage
27
28 #### [Rendering single bar](examples/singleBar/main.go)
29 ```go
30 p := mpb.New(
31 // override default (80) width
32 mpb.WithWidth(64),
33 // override default 120ms refresh rate
34 mpb.WithRefreshRate(180*time.Millisecond),
35 )
36
37 total := 100
38 name := "Single Bar:"
39 // adding a single bar
40 bar := p.AddBar(int64(total),
41 // override default "[=>-]" style
42 mpb.BarStyle("╢▌▌░╟"),
43 mpb.PrependDecorators(
44 // display our name with one space on the right
45 decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}),
46 // replace ETA decorator with "done" message, OnComplete event
47 decor.OnComplete(
48 // ETA decorator with ewma age of 60, and width reservation of 4
49 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WC{W: 4}), "done",
50 ),
51 ),
52 mpb.AppendDecorators(decor.Percentage()),
53 )
54 // simulating some work
55 max := 100 * time.Millisecond
56 for i := 0; i < total; i++ {
57 start := time.Now()
58 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
59 // ewma based decorators require work duration measurement
60 bar.IncrBy(1, time.Since(start))
61 }
62 // wait for our bar to complete and flush
63 p.Wait()
64 ```
65
66 #### [Rendering multiple bars](examples/simple/main.go)
67 ```go
68 var wg sync.WaitGroup
69 p := mpb.New(mpb.WithWaitGroup(&wg))
70 total, numBars := 100, 3
71 wg.Add(numBars)
72
73 for i := 0; i < numBars; i++ {
74 name := fmt.Sprintf("Bar#%d:", i)
75 bar := p.AddBar(int64(total),
76 mpb.PrependDecorators(
77 // simple name decorator
78 decor.Name(name),
79 // decor.DSyncWidth bit enables column width synchronization
80 decor.Percentage(decor.WCSyncSpace),
81 ),
82 mpb.AppendDecorators(
83 // replace ETA decorator with "done" message, OnComplete event
84 decor.OnComplete(
85 // ETA decorator with ewma age of 60
86 decor.EwmaETA(decor.ET_STYLE_GO, 60), "done",
87 ),
88 ),
89 )
90 // simulating some work
91 go func() {
92 defer wg.Done()
93 max := 100 * time.Millisecond
94 for i := 0; i < total; i++ {
95 start := time.Now()
96 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
97 // ewma based decorators require work duration measurement
98 bar.IncrBy(1, time.Since(start))
99 }
100 }()
101 }
102 // wait for all bars to complete and flush
103 p.Wait()
104 ```
105
106 #### [Dynamic total](examples/dynTotal/main.go)
107
108 ![dynamic total](examples/gifs/godEMrCZmJkHYH1X9dN4Nm0U7.svg)
109
110 #### [Complex example](examples/complex/main.go)
111
112 ![complex](examples/gifs/wHzf1M7sd7B3zVa2scBMnjqRf.svg)
113
114 #### [Bytes counters](examples/io/single/main.go)
115
116 ![byte counters](examples/gifs/hIpTa3A5rQz65ssiVuRJu87X6.svg)
0 package mpb
1
2 import (
3 "bytes"
4 "context"
5 "fmt"
6 "io"
7 "io/ioutil"
8 "strings"
9 "sync"
10 "time"
11 "unicode/utf8"
12
13 "github.com/vbauerster/mpb/decor"
14 )
15
16 // Bar represents a progress Bar
17 type Bar struct {
18 priority int
19 index int
20
21 runningBar *Bar
22 cacheState *bState
23 operateState chan func(*bState)
24 int64Ch chan int64
25 boolCh chan bool
26 frameReaderCh chan *frameReader
27 syncTableCh chan [][]chan int
28
29 // done is closed by Bar's goroutine, after cacheState is written
30 done chan struct{}
31 // shutdown is closed from master Progress goroutine only
32 shutdown chan struct{}
33 }
34
35 // Filler interface.
36 // Bar renders by calling Filler's Fill method. You can literally have
37 // any bar kind, by implementing this interface and passing it to the
38 // Add method.
39 type Filler interface {
40 Fill(w io.Writer, width int, s *decor.Statistics)
41 }
42
43 // FillerFunc is function type adapter to convert function into Filler.
44 type FillerFunc func(w io.Writer, width int, stat *decor.Statistics)
45
46 func (f FillerFunc) Fill(w io.Writer, width int, stat *decor.Statistics) {
47 f(w, width, stat)
48 }
49
50 type (
51 bState struct {
52 filler Filler
53 id int
54 width int
55 alignment int
56 total int64
57 current int64
58 trimSpace bool
59 toComplete bool
60 removeOnComplete bool
61 barClearOnComplete bool
62 completeFlushed bool
63 aDecorators []decor.Decorator
64 pDecorators []decor.Decorator
65 amountReceivers []decor.AmountReceiver
66 shutdownListeners []decor.ShutdownListener
67 refill *refill
68 bufP, bufB, bufA *bytes.Buffer
69 bufNL *bytes.Buffer
70 panicMsg string
71 newLineExtendFn func(io.Writer, *decor.Statistics)
72
73 // following options are assigned to the *Bar
74 priority int
75 runningBar *Bar
76 }
77 refill struct {
78 r rune
79 limit int64
80 }
81 frameReader struct {
82 io.Reader
83 extendedLines int
84 toShutdown bool
85 removeOnComplete bool
86 }
87 )
88
89 func newBar(
90 ctx context.Context,
91 wg *sync.WaitGroup,
92 filler Filler,
93 id, width int,
94 total int64,
95 options ...BarOption,
96 ) *Bar {
97
98 s := &bState{
99 filler: filler,
100 id: id,
101 priority: id,
102 width: width,
103 total: total,
104 }
105
106 for _, opt := range options {
107 if opt != nil {
108 opt(s)
109 }
110 }
111
112 s.bufP = bytes.NewBuffer(make([]byte, 0, s.width))
113 s.bufB = bytes.NewBuffer(make([]byte, 0, s.width))
114 s.bufA = bytes.NewBuffer(make([]byte, 0, s.width))
115 if s.newLineExtendFn != nil {
116 s.bufNL = bytes.NewBuffer(make([]byte, 0, s.width))
117 }
118
119 b := &Bar{
120 priority: s.priority,
121 runningBar: s.runningBar,
122 operateState: make(chan func(*bState)),
123 int64Ch: make(chan int64),
124 boolCh: make(chan bool),
125 frameReaderCh: make(chan *frameReader, 1),
126 syncTableCh: make(chan [][]chan int),
127 done: make(chan struct{}),
128 shutdown: make(chan struct{}),
129 }
130
131 if b.runningBar != nil {
132 b.priority = b.runningBar.priority
133 }
134
135 go b.serve(ctx, wg, s)
136 return b
137 }
138
139 // RemoveAllPrependers removes all prepend functions.
140 func (b *Bar) RemoveAllPrependers() {
141 select {
142 case b.operateState <- func(s *bState) { s.pDecorators = nil }:
143 case <-b.done:
144 }
145 }
146
147 // RemoveAllAppenders removes all append functions.
148 func (b *Bar) RemoveAllAppenders() {
149 select {
150 case b.operateState <- func(s *bState) { s.aDecorators = nil }:
151 case <-b.done:
152 }
153 }
154
155 // ProxyReader wraps r with metrics required for progress tracking.
156 func (b *Bar) ProxyReader(r io.Reader) io.ReadCloser {
157 if r == nil {
158 panic("expect io.Reader, got nil")
159 }
160 rc, ok := r.(io.ReadCloser)
161 if !ok {
162 rc = ioutil.NopCloser(r)
163 }
164 return &proxyReader{rc, b, time.Now()}
165 }
166
167 // ID returs id of the bar.
168 func (b *Bar) ID() int {
169 select {
170 case b.operateState <- func(s *bState) { b.int64Ch <- int64(s.id) }:
171 return int(<-b.int64Ch)
172 case <-b.done:
173 return b.cacheState.id
174 }
175 }
176
177 // Current returns bar's current number, in other words sum of all increments.
178 func (b *Bar) Current() int64 {
179 select {
180 case b.operateState <- func(s *bState) { b.int64Ch <- s.current }:
181 return <-b.int64Ch
182 case <-b.done:
183 return b.cacheState.current
184 }
185 }
186
187 // SetTotal sets total dynamically.
188 // Set complete to true, to trigger bar complete event now.
189 func (b *Bar) SetTotal(total int64, complete bool) {
190 select {
191 case b.operateState <- func(s *bState) {
192 s.total = total
193 if complete && !s.toComplete {
194 s.current = s.total
195 s.toComplete = true
196 }
197 }:
198 case <-b.done:
199 }
200 }
201
202 // SetRefill sets refill, if supported by underlying Filler.
203 func (b *Bar) SetRefill(amount int64) {
204 b.operateState <- func(s *bState) {
205 if f, ok := s.filler.(interface{ SetRefill(int64) }); ok {
206 f.SetRefill(amount)
207 }
208 }
209 }
210
211 // Increment is a shorthand for b.IncrBy(1).
212 func (b *Bar) Increment() {
213 b.IncrBy(1)
214 }
215
216 // IncrBy increments progress bar by amount of n.
217 // wdd is optional work duration i.e. time.Since(start), which expected
218 // to be provided, if any ewma based decorator is used.
219 func (b *Bar) IncrBy(n int, wdd ...time.Duration) {
220 select {
221 case b.operateState <- func(s *bState) {
222 s.current += int64(n)
223 if s.total > 0 && s.current >= s.total {
224 s.current = s.total
225 s.toComplete = true
226 }
227 for _, ar := range s.amountReceivers {
228 ar.NextAmount(n, wdd...)
229 }
230 }:
231 case <-b.done:
232 }
233 }
234
235 // Completed reports whether the bar is in completed state.
236 func (b *Bar) Completed() bool {
237 // omit select here, because primary usage of the method is for loop
238 // condition, like for !bar.Completed() {...} so when toComplete=true
239 // it is called once (at which time, the bar is still alive), then
240 // quits the loop and never suppose to be called afterwards.
241 return <-b.boolCh
242 }
243
244 func (b *Bar) wSyncTable() [][]chan int {
245 select {
246 case b.operateState <- func(s *bState) { b.syncTableCh <- s.wSyncTable() }:
247 return <-b.syncTableCh
248 case <-b.done:
249 return b.cacheState.wSyncTable()
250 }
251 }
252
253 func (b *Bar) serve(ctx context.Context, wg *sync.WaitGroup, s *bState) {
254 defer wg.Done()
255 cancel := ctx.Done()
256 for {
257 select {
258 case op := <-b.operateState:
259 op(s)
260 case b.boolCh <- s.toComplete:
261 case <-cancel:
262 s.toComplete = true
263 cancel = nil
264 case <-b.shutdown:
265 b.cacheState = s
266 close(b.done)
267 for _, sl := range s.shutdownListeners {
268 sl.Shutdown()
269 }
270 return
271 }
272 }
273 }
274
275 func (b *Bar) render(debugOut io.Writer, tw int) {
276 select {
277 case b.operateState <- func(s *bState) {
278 defer func() {
279 // recovering if user defined decorator panics for example
280 if p := recover(); p != nil {
281 s.panicMsg = fmt.Sprintf("panic: %v", p)
282 fmt.Fprintf(debugOut, "%s %s bar id %02d %v\n", "[mpb]", time.Now(), s.id, s.panicMsg)
283 b.frameReaderCh <- &frameReader{
284 Reader: strings.NewReader(fmt.Sprintf(fmt.Sprintf("%%.%ds\n", tw), s.panicMsg)),
285 toShutdown: true,
286 }
287 }
288 }()
289 r := s.draw(tw)
290 var extendedLines int
291 if s.newLineExtendFn != nil {
292 s.bufNL.Reset()
293 s.newLineExtendFn(s.bufNL, newStatistics(s))
294 extendedLines = countLines(s.bufNL.Bytes())
295 r = io.MultiReader(r, s.bufNL)
296 }
297 b.frameReaderCh <- &frameReader{
298 Reader: r,
299 extendedLines: extendedLines,
300 toShutdown: s.toComplete && !s.completeFlushed,
301 removeOnComplete: s.removeOnComplete,
302 }
303 s.completeFlushed = s.toComplete
304 }:
305 case <-b.done:
306 s := b.cacheState
307 r := s.draw(tw)
308 var extendedLines int
309 if s.newLineExtendFn != nil {
310 s.bufNL.Reset()
311 s.newLineExtendFn(s.bufNL, newStatistics(s))
312 extendedLines = countLines(s.bufNL.Bytes())
313 r = io.MultiReader(r, s.bufNL)
314 }
315 b.frameReaderCh <- &frameReader{
316 Reader: r,
317 extendedLines: extendedLines,
318 }
319 }
320 }
321
322 func (s *bState) draw(termWidth int) io.Reader {
323 if s.panicMsg != "" {
324 return strings.NewReader(fmt.Sprintf(fmt.Sprintf("%%.%ds\n", termWidth), s.panicMsg))
325 }
326
327 stat := newStatistics(s)
328
329 for _, d := range s.pDecorators {
330 s.bufP.WriteString(d.Decor(stat))
331 }
332
333 for _, d := range s.aDecorators {
334 s.bufA.WriteString(d.Decor(stat))
335 }
336
337 if s.barClearOnComplete && s.completeFlushed {
338 s.bufA.WriteByte('\n')
339 return io.MultiReader(s.bufP, s.bufA)
340 }
341
342 prependCount := utf8.RuneCount(s.bufP.Bytes())
343 appendCount := utf8.RuneCount(s.bufA.Bytes())
344
345 if !s.trimSpace {
346 // reserve space for edge spaces
347 termWidth -= 2
348 s.bufB.WriteByte(' ')
349 }
350
351 if prependCount+s.width+appendCount > termWidth {
352 s.filler.Fill(s.bufB, termWidth-prependCount-appendCount, stat)
353 } else {
354 s.filler.Fill(s.bufB, s.width, stat)
355 }
356
357 if !s.trimSpace {
358 s.bufB.WriteByte(' ')
359 }
360
361 s.bufA.WriteByte('\n')
362 return io.MultiReader(s.bufP, s.bufB, s.bufA)
363 }
364
365 func (s *bState) wSyncTable() [][]chan int {
366 columns := make([]chan int, 0, len(s.pDecorators)+len(s.aDecorators))
367 var pCount int
368 for _, d := range s.pDecorators {
369 if ok, ch := d.Syncable(); ok {
370 columns = append(columns, ch)
371 pCount++
372 }
373 }
374 var aCount int
375 for _, d := range s.aDecorators {
376 if ok, ch := d.Syncable(); ok {
377 columns = append(columns, ch)
378 aCount++
379 }
380 }
381 table := make([][]chan int, 2)
382 table[0] = columns[0:pCount]
383 table[1] = columns[pCount : pCount+aCount : pCount+aCount]
384 return table
385 }
386
387 func newStatistics(s *bState) *decor.Statistics {
388 return &decor.Statistics{
389 ID: s.id,
390 Completed: s.completeFlushed,
391 Total: s.total,
392 Current: s.current,
393 }
394 }
395
396 func countLines(b []byte) int {
397 return bytes.Count(b, []byte("\n"))
398 }
0 package mpb
1
2 import (
3 "io"
4 "unicode/utf8"
5
6 "github.com/vbauerster/mpb/decor"
7 "github.com/vbauerster/mpb/internal"
8 )
9
10 const (
11 rLeft = iota
12 rFill
13 rTip
14 rEmpty
15 rRight
16 rRevTip
17 rRefill
18 )
19
20 var defaultBarStyle = "[=>-]<+"
21
22 type barFiller struct {
23 format [][]byte
24 refillAmount int64
25 reverse bool
26 }
27
28 func newDefaultBarFiller() Filler {
29 bf := &barFiller{
30 format: make([][]byte, utf8.RuneCountInString(defaultBarStyle)),
31 }
32 bf.setStyle(defaultBarStyle)
33 return bf
34 }
35
36 func (s *barFiller) setStyle(style string) {
37 if !utf8.ValidString(style) {
38 return
39 }
40 src := make([][]byte, 0, utf8.RuneCountInString(style))
41 for _, r := range style {
42 src = append(src, []byte(string(r)))
43 }
44 copy(s.format, src)
45 }
46
47 func (s *barFiller) setReverse() {
48 s.reverse = true
49 }
50
51 func (s *barFiller) SetRefill(amount int64) {
52 s.refillAmount = amount
53 }
54
55 func (s *barFiller) Fill(w io.Writer, width int, stat *decor.Statistics) {
56
57 // don't count rLeft and rRight [brackets]
58 width -= 2
59 if width < 2 {
60 return
61 }
62
63 w.Write(s.format[rLeft])
64 if width == 2 {
65 w.Write(s.format[rRight])
66 return
67 }
68
69 bb := make([][]byte, width)
70
71 cwidth := int(internal.Percentage(stat.Total, stat.Current, int64(width)))
72
73 for i := 0; i < cwidth; i++ {
74 bb[i] = s.format[rFill]
75 }
76
77 if s.refillAmount > 0 {
78 var rwidth int
79 if s.refillAmount > stat.Current {
80 rwidth = cwidth
81 } else {
82 rwidth = int(internal.Percentage(stat.Total, int64(s.refillAmount), int64(width)))
83 }
84 for i := 0; i < rwidth; i++ {
85 bb[i] = s.format[rRefill]
86 }
87 }
88
89 if cwidth > 0 && cwidth < width {
90 bb[cwidth-1] = s.format[rTip]
91 }
92
93 for i := cwidth; i < width; i++ {
94 bb[i] = s.format[rEmpty]
95 }
96
97 if s.reverse {
98 if cwidth > 0 && cwidth < width {
99 bb[cwidth-1] = s.format[rRevTip]
100 }
101 for i := len(bb) - 1; i >= 0; i-- {
102 w.Write(bb[i])
103 }
104 } else {
105 for i := 0; i < len(bb); i++ {
106 w.Write(bb[i])
107 }
108 }
109 w.Write(s.format[rRight])
110 }
0 package mpb
1
2 import (
3 "io"
4
5 "github.com/vbauerster/mpb/decor"
6 )
7
8 // BarOption is a function option which changes the default behavior of a bar.
9 type BarOption func(*bState)
10
11 // AppendDecorators let you inject decorators to the bar's right side.
12 func AppendDecorators(appenders ...decor.Decorator) BarOption {
13 return func(s *bState) {
14 for _, decorator := range appenders {
15 if ar, ok := decorator.(decor.AmountReceiver); ok {
16 s.amountReceivers = append(s.amountReceivers, ar)
17 }
18 if sl, ok := decorator.(decor.ShutdownListener); ok {
19 s.shutdownListeners = append(s.shutdownListeners, sl)
20 }
21 s.aDecorators = append(s.aDecorators, decorator)
22 }
23 }
24 }
25
26 // PrependDecorators let you inject decorators to the bar's left side.
27 func PrependDecorators(prependers ...decor.Decorator) BarOption {
28 return func(s *bState) {
29 for _, decorator := range prependers {
30 if ar, ok := decorator.(decor.AmountReceiver); ok {
31 s.amountReceivers = append(s.amountReceivers, ar)
32 }
33 if sl, ok := decorator.(decor.ShutdownListener); ok {
34 s.shutdownListeners = append(s.shutdownListeners, sl)
35 }
36 s.pDecorators = append(s.pDecorators, decorator)
37 }
38 }
39 }
40
41 // BarID sets bar id.
42 func BarID(id int) BarOption {
43 return func(s *bState) {
44 s.id = id
45 }
46 }
47
48 // BarWidth sets bar width independent of the container.
49 func BarWidth(width int) BarOption {
50 return func(s *bState) {
51 s.width = width
52 }
53 }
54
55 // BarRemoveOnComplete is a flag, if set whole bar line will be removed
56 // on complete event. If both BarRemoveOnComplete and BarClearOnComplete
57 // are set, first bar section gets cleared and then whole bar line
58 // gets removed completely.
59 func BarRemoveOnComplete() BarOption {
60 return func(s *bState) {
61 s.removeOnComplete = true
62 }
63 }
64
65 // BarReplaceOnComplete is indicator for delayed bar start, after the
66 // `runningBar` is complete. To achieve bar replacement effect,
67 // `runningBar` should has its `BarRemoveOnComplete` option set.
68 func BarReplaceOnComplete(runningBar *Bar) BarOption {
69 return BarParkTo(runningBar)
70 }
71
72 // BarParkTo same as BarReplaceOnComplete
73 func BarParkTo(runningBar *Bar) BarOption {
74 return func(s *bState) {
75 s.runningBar = runningBar
76 }
77 }
78
79 // BarClearOnComplete is a flag, if set will clear bar section on
80 // complete event. If you need to remove a whole bar line, refer to
81 // BarRemoveOnComplete.
82 func BarClearOnComplete() BarOption {
83 return func(s *bState) {
84 s.barClearOnComplete = true
85 }
86 }
87
88 // BarPriority sets bar's priority. Zero is highest priority, i.e. bar
89 // will be on top. If `BarReplaceOnComplete` option is supplied, this
90 // option is ignored.
91 func BarPriority(priority int) BarOption {
92 return func(s *bState) {
93 s.priority = priority
94 }
95 }
96
97 // BarNewLineExtend takes user defined efn, which gets called each
98 // render cycle. Any write to provided writer of efn, will appear on
99 // new line of respective bar.
100 func BarNewLineExtend(efn func(io.Writer, *decor.Statistics)) BarOption {
101 return func(s *bState) {
102 s.newLineExtendFn = efn
103 }
104 }
105
106 // TrimSpace trims bar's edge spaces.
107 func TrimSpace() BarOption {
108 return func(s *bState) {
109 s.trimSpace = true
110 }
111 }
112
113 // BarStyle sets custom bar style, default one is "[=>-]<+".
114 //
115 // '[' left bracket rune
116 //
117 // '=' fill rune
118 //
119 // '>' tip rune
120 //
121 // '-' empty rune
122 //
123 // ']' right bracket rune
124 //
125 // '<' reverse tip rune, used when BarReverse option is set
126 //
127 // '+' refill rune, used when *Bar.SetRefill(int64) is called
128 //
129 // It's ok to provide first five runes only, for example mpb.BarStyle("╢▌▌░╟")
130 func BarStyle(style string) BarOption {
131 chk := func(filler Filler) (interface{}, bool) {
132 if style == "" {
133 return nil, false
134 }
135 t, ok := filler.(*barFiller)
136 return t, ok
137 }
138 cb := func(t interface{}) {
139 t.(*barFiller).setStyle(style)
140 }
141 return MakeFillerTypeSpecificBarOption(chk, cb)
142 }
143
144 // BarReverse reverse mode, bar will progress from right to left.
145 func BarReverse() BarOption {
146 chk := func(filler Filler) (interface{}, bool) {
147 t, ok := filler.(*barFiller)
148 return t, ok
149 }
150 cb := func(t interface{}) {
151 t.(*barFiller).setReverse()
152 }
153 return MakeFillerTypeSpecificBarOption(chk, cb)
154 }
155
156 // SpinnerStyle sets custom spinner style.
157 // Effective when Filler type is spinner.
158 func SpinnerStyle(frames []string) BarOption {
159 chk := func(filler Filler) (interface{}, bool) {
160 if len(frames) == 0 {
161 return nil, false
162 }
163 t, ok := filler.(*spinnerFiller)
164 return t, ok
165 }
166 cb := func(t interface{}) {
167 t.(*spinnerFiller).frames = frames
168 }
169 return MakeFillerTypeSpecificBarOption(chk, cb)
170 }
171
172 // MakeFillerTypeSpecificBarOption makes BarOption specific to Filler's
173 // actual type. If you implement your own Filler, so most probably
174 // you'll need this. See BarStyle or SpinnerStyle for example.
175 func MakeFillerTypeSpecificBarOption(
176 typeChecker func(Filler) (interface{}, bool),
177 cb func(interface{}),
178 ) BarOption {
179 return func(s *bState) {
180 if t, ok := typeChecker(s.filler); ok {
181 cb(t)
182 }
183 }
184 }
185
186 // OptionOnCondition returns option when condition evaluates to true.
187 func OptionOnCondition(option BarOption, condition func() bool) BarOption {
188 if condition() {
189 return option
190 }
191 return nil
192 }
0 package mpb_test
1
2 import (
3 "bytes"
4 "fmt"
5 "io/ioutil"
6 "strings"
7 "testing"
8 "time"
9 "unicode/utf8"
10
11 . "github.com/vbauerster/mpb"
12 "github.com/vbauerster/mpb/decor"
13 )
14
15 func TestBarCompleted(t *testing.T) {
16 p := New(WithOutput(ioutil.Discard))
17 total := 80
18 bar := p.AddBar(int64(total))
19
20 var count int
21 for !bar.Completed() {
22 time.Sleep(10 * time.Millisecond)
23 bar.Increment()
24 count++
25 }
26
27 p.Wait()
28 if count != total {
29 t.Errorf("got count: %d, expected %d\n", count, total)
30 }
31 }
32
33 func TestBarID(t *testing.T) {
34 p := New(WithOutput(ioutil.Discard))
35 total := 80
36 wantID := 11
37 bar := p.AddBar(int64(total), BarID(wantID))
38
39 go func() {
40 for i := 0; i < total; i++ {
41 time.Sleep(50 * time.Millisecond)
42 bar.Increment()
43 }
44 }()
45
46 gotID := bar.ID()
47 if gotID != wantID {
48 t.Errorf("Expected bar id: %d, got %d\n", wantID, gotID)
49 }
50
51 p.Abort(bar, true)
52 p.Wait()
53 }
54
55 func TestBarSetRefill(t *testing.T) {
56 var buf bytes.Buffer
57
58 width := 100
59 p := New(WithOutput(&buf), WithWidth(width))
60
61 total := 100
62 till := 30
63 refillRune, _ := utf8.DecodeLastRuneInString(DefaultBarStyle)
64
65 bar := p.AddBar(int64(total), TrimSpace())
66
67 bar.SetRefill(int64(till))
68 bar.IncrBy(till)
69
70 for i := 0; i < total-till; i++ {
71 bar.Increment()
72 time.Sleep(10 * time.Millisecond)
73 }
74
75 p.Wait()
76
77 wantBar := fmt.Sprintf("[%s%s]",
78 strings.Repeat(string(refillRune), till-1),
79 strings.Repeat("=", total-till-1),
80 )
81
82 got := string(getLastLine(buf.Bytes()))
83
84 if !strings.Contains(got, wantBar) {
85 t.Errorf("Want bar: %q, got bar: %q\n", wantBar, got)
86 }
87 }
88
89 func TestBarHas100PercentWithOnCompleteDecorator(t *testing.T) {
90 var buf bytes.Buffer
91
92 p := New(WithOutput(&buf))
93
94 total := 50
95
96 bar := p.AddBar(int64(total),
97 AppendDecorators(
98 decor.OnComplete(
99 decor.Percentage(), "done",
100 ),
101 ),
102 )
103
104 for i := 0; i < total; i++ {
105 bar.Increment()
106 time.Sleep(10 * time.Millisecond)
107 }
108
109 p.Wait()
110
111 hundred := "100 %"
112 if !bytes.Contains(buf.Bytes(), []byte(hundred)) {
113 t.Errorf("Bar's buffer does not contain: %q\n", hundred)
114 }
115 }
116
117 func TestBarHas100PercentWithBarRemoveOnComplete(t *testing.T) {
118 var buf bytes.Buffer
119
120 p := New(WithOutput(&buf))
121
122 total := 50
123
124 bar := p.AddBar(int64(total),
125 BarRemoveOnComplete(),
126 AppendDecorators(decor.Percentage()),
127 )
128
129 for i := 0; i < total; i++ {
130 bar.Increment()
131 time.Sleep(10 * time.Millisecond)
132 }
133
134 p.Wait()
135
136 hundred := "100 %"
137 if !bytes.Contains(buf.Bytes(), []byte(hundred)) {
138 t.Errorf("Bar's buffer does not contain: %q\n", hundred)
139 }
140 }
141
142 func TestBarStyle(t *testing.T) {
143 var buf bytes.Buffer
144 customFormat := "╢▌▌░╟"
145 p := New(WithOutput(&buf))
146 total := 80
147 bar := p.AddBar(int64(total), BarStyle(customFormat), TrimSpace())
148
149 for i := 0; i < total; i++ {
150 bar.Increment()
151 time.Sleep(10 * time.Millisecond)
152 }
153
154 p.Wait()
155
156 runes := []rune(customFormat)
157 wantBar := fmt.Sprintf("%s%s%s",
158 string(runes[0]),
159 strings.Repeat(string(runes[1]), total-2),
160 string(runes[len(runes)-1]),
161 )
162 got := string(getLastLine(buf.Bytes()))
163
164 if got != wantBar {
165 t.Errorf("Want bar: %q:%d, got bar: %q:%d\n", wantBar, utf8.RuneCountInString(wantBar), got, utf8.RuneCountInString(got))
166 }
167 }
168
169 func TestBarPanics(t *testing.T) {
170 var buf bytes.Buffer
171 p := New(WithDebugOutput(&buf), WithOutput(ioutil.Discard))
172
173 wantPanic := "Upps!!!"
174 total := 100
175
176 bar := p.AddBar(int64(total), PrependDecorators(panicDecorator(wantPanic)))
177
178 go func() {
179 for i := 0; i < 100; i++ {
180 time.Sleep(10 * time.Millisecond)
181 bar.Increment()
182 }
183 }()
184
185 p.Wait()
186
187 wantPanic = fmt.Sprintf("panic: %s", wantPanic)
188 debugStr := buf.String()
189 if !strings.Contains(debugStr, wantPanic) {
190 t.Errorf("%q doesn't contain %q\n", debugStr, wantPanic)
191 }
192 }
193
194 func panicDecorator(panicMsg string) decor.Decorator {
195 d := &decorator{
196 panicMsg: panicMsg,
197 }
198 d.Init()
199 return d
200 }
201
202 type decorator struct {
203 decor.WC
204 panicMsg string
205 }
206
207 func (d *decorator) Decor(st *decor.Statistics) string {
208 if st.Current >= 42 {
209 panic(d.panicMsg)
210 }
211 return d.FormatMsg("")
212 }
0 package mpb
1
2 import (
3 "io/ioutil"
4 "testing"
5
6 "github.com/vbauerster/mpb/decor"
7 )
8
9 func BenchmarkIncrSingleBar(b *testing.B) {
10 p := New(WithOutput(ioutil.Discard))
11 bar := p.AddBar(int64(b.N))
12 for i := 0; i < b.N; i++ {
13 bar.Increment()
14 }
15 }
16
17 func BenchmarkIncrSingleBarWhileIsNotCompleted(b *testing.B) {
18 p := New(WithOutput(ioutil.Discard))
19 bar := p.AddBar(int64(b.N))
20 for !bar.Completed() {
21 bar.Increment()
22 }
23 }
24
25 func BenchmarkIncrSingleBarWithNameDecorator(b *testing.B) {
26 p := New(WithOutput(ioutil.Discard))
27 bar := p.AddBar(int64(b.N), PrependDecorators(decor.Name("test")))
28 for i := 0; i < b.N; i++ {
29 bar.Increment()
30 }
31 }
32
33 func BenchmarkIncrSingleBarWithNameAndEwmaETADecorator(b *testing.B) {
34 p := New(WithOutput(ioutil.Discard))
35 bar := p.AddBar(int64(b.N),
36 PrependDecorators(decor.Name("test")),
37 AppendDecorators(decor.EwmaETA(decor.ET_STYLE_GO, 60)),
38 )
39 for i := 0; i < b.N; i++ {
40 bar.Increment()
41 }
42 }
0 package cwriter
1
2 var ClearCursorAndLine = clearCursorAndLine
0 package cwriter
1
2 import (
3 "bytes"
4 "errors"
5 "fmt"
6 "io"
7 "os"
8
9 isatty "github.com/mattn/go-isatty"
10 "golang.org/x/crypto/ssh/terminal"
11 )
12
13 // ESC is the ASCII code for escape character
14 const ESC = 27
15
16 var NotATTY = errors.New("not a terminal")
17
18 var (
19 cursorUp = fmt.Sprintf("%c[%dA", ESC, 1)
20 clearLine = fmt.Sprintf("%c[2K\r", ESC)
21 clearCursorAndLine = cursorUp + clearLine
22 )
23
24 // Writer is a buffered the writer that updates the terminal. The
25 // contents of writer will be flushed when Flush is called.
26 type Writer struct {
27 out io.Writer
28 buf bytes.Buffer
29 isTerminal bool
30 fd int
31 lineCount int
32 }
33
34 // New returns a new Writer with defaults
35 func New(out io.Writer) *Writer {
36 w := &Writer{out: out}
37 if f, ok := out.(*os.File); ok {
38 fd := f.Fd()
39 w.isTerminal = isatty.IsTerminal(fd)
40 w.fd = int(fd)
41 }
42 return w
43 }
44
45 // Flush flushes the underlying buffer
46 func (w *Writer) Flush(lineCount int) error {
47 err := w.clearLines()
48 w.lineCount = lineCount
49 // WriteTo takes care of w.buf.Reset
50 if _, e := w.buf.WriteTo(w.out); err == nil {
51 err = e
52 }
53 return err
54 }
55
56 // Write appends the contents of p to the underlying buffer
57 func (w *Writer) Write(p []byte) (n int, err error) {
58 return w.buf.Write(p)
59 }
60
61 // WriteString writes string to the underlying buffer
62 func (w *Writer) WriteString(s string) (n int, err error) {
63 return w.buf.WriteString(s)
64 }
65
66 // ReadFrom reads from the provided io.Reader and writes to the
67 // underlying buffer.
68 func (w *Writer) ReadFrom(r io.Reader) (n int64, err error) {
69 return w.buf.ReadFrom(r)
70 }
71
72 // GetWidth returns width of underlying terminal.
73 func (w *Writer) GetWidth() (int, error) {
74 if w.isTerminal {
75 tw, _, err := terminal.GetSize(w.fd)
76 return tw, err
77 }
78 return -1, NotATTY
79 }
0 // +build !windows
1
2 package cwriter
3
4 import (
5 "io"
6 "strings"
7 )
8
9 func (w *Writer) clearLines() error {
10 _, err := io.WriteString(w.out, strings.Repeat(clearCursorAndLine, w.lineCount))
11 return err
12 }
0 // +build !windows
1
2 package cwriter_test
3
4 import (
5 "bytes"
6 "testing"
7
8 . "github.com/vbauerster/mpb/cwriter"
9 )
10
11 // TestWriterPosix by writing and flushing many times. The output buffer
12 // must contain the clearCursor and clearLine sequences.
13 func TestWriterPosix(t *testing.T) {
14 out := new(bytes.Buffer)
15 w := New(out)
16
17 for _, tcase := range []struct {
18 input, expectedOutput string
19 }{
20 {input: "foo\n", expectedOutput: "foo\n"},
21 {input: "bar\n", expectedOutput: "foo\n" + ClearCursorAndLine + "bar\n"},
22 {input: "fizz\n", expectedOutput: "foo\n" + ClearCursorAndLine + "bar\n" + ClearCursorAndLine + "fizz\n"},
23 } {
24 t.Run(tcase.input, func(t *testing.T) {
25 s := []byte(tcase.input)
26 lc := bytes.Count(s, []byte("\n"))
27 w.Write(s)
28 w.Flush(lc)
29 output := out.String()
30 if output != tcase.expectedOutput {
31 t.Fatalf("want %q, got %q", tcase.expectedOutput, output)
32 }
33 })
34 }
35 }
0 // +build windows
1
2 package cwriter
3
4 import (
5 "io"
6 "strings"
7 "syscall"
8 "unsafe"
9
10 isatty "github.com/mattn/go-isatty"
11 )
12
13 var kernel32 = syscall.NewLazyDLL("kernel32.dll")
14
15 var (
16 procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
17 procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition")
18 procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
19 procFillConsoleOutputAttribute = kernel32.NewProc("FillConsoleOutputAttribute")
20 )
21
22 type (
23 short int16
24 word uint16
25 dword uint32
26
27 coord struct {
28 x short
29 y short
30 }
31 smallRect struct {
32 left short
33 top short
34 right short
35 bottom short
36 }
37 consoleScreenBufferInfo struct {
38 size coord
39 cursorPosition coord
40 attributes word
41 window smallRect
42 maximumWindowSize coord
43 }
44 )
45
46 // FdWriter is a writer with a file descriptor.
47 type FdWriter interface {
48 io.Writer
49 Fd() uintptr
50 }
51
52 func (w *Writer) clearLines() error {
53 f, ok := w.out.(FdWriter)
54 if ok && !isatty.IsTerminal(f.Fd()) {
55 _, err := io.WriteString(w.out, strings.Repeat(clearCursorAndLine, w.lineCount))
56 return err
57 }
58 fd := f.Fd()
59 var info consoleScreenBufferInfo
60 procGetConsoleScreenBufferInfo.Call(fd, uintptr(unsafe.Pointer(&info)))
61
62 for i := 0; i < w.lineCount; i++ {
63 // move the cursor up
64 info.cursorPosition.y--
65 procSetConsoleCursorPosition.Call(fd, uintptr(*(*int32)(unsafe.Pointer(&info.cursorPosition))))
66 // clear the line
67 cursor := coord{
68 x: info.window.left,
69 y: info.window.top + info.cursorPosition.y,
70 }
71 var count, w dword
72 count = dword(info.size.x)
73 procFillConsoleOutputCharacter.Call(fd, uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&w)))
74 }
75 return nil
76 }
0 package decor
1
2 import (
3 "fmt"
4 "io"
5 "strconv"
6 "strings"
7 )
8
9 const (
10 _ = iota
11 KiB = 1 << (iota * 10)
12 MiB
13 GiB
14 TiB
15 )
16
17 const (
18 KB = 1000
19 MB = KB * 1000
20 GB = MB * 1000
21 TB = GB * 1000
22 )
23
24 const (
25 _ = iota
26 UnitKiB
27 UnitKB
28 )
29
30 type CounterKiB int64
31
32 func (c CounterKiB) Format(st fmt.State, verb rune) {
33 prec, ok := st.Precision()
34
35 if verb == 'd' || !ok {
36 prec = 0
37 }
38 if verb == 'f' && !ok {
39 prec = 6
40 }
41 // retain old beahavior if s verb used
42 if verb == 's' {
43 prec = 1
44 }
45
46 var res, unit string
47 switch {
48 case c >= TiB:
49 unit = "TiB"
50 res = strconv.FormatFloat(float64(c)/TiB, 'f', prec, 64)
51 case c >= GiB:
52 unit = "GiB"
53 res = strconv.FormatFloat(float64(c)/GiB, 'f', prec, 64)
54 case c >= MiB:
55 unit = "MiB"
56 res = strconv.FormatFloat(float64(c)/MiB, 'f', prec, 64)
57 case c >= KiB:
58 unit = "KiB"
59 res = strconv.FormatFloat(float64(c)/KiB, 'f', prec, 64)
60 default:
61 unit = "b"
62 res = strconv.FormatInt(int64(c), 10)
63 }
64
65 if st.Flag(' ') {
66 res += " "
67 }
68 res += unit
69
70 if w, ok := st.Width(); ok {
71 if len(res) < w {
72 pad := strings.Repeat(" ", w-len(res))
73 if st.Flag(int('-')) {
74 res += pad
75 } else {
76 res = pad + res
77 }
78 }
79 }
80
81 io.WriteString(st, res)
82 }
83
84 type CounterKB int64
85
86 func (c CounterKB) Format(st fmt.State, verb rune) {
87 prec, ok := st.Precision()
88
89 if verb == 'd' || !ok {
90 prec = 0
91 }
92 if verb == 'f' && !ok {
93 prec = 6
94 }
95 // retain old beahavior if s verb used
96 if verb == 's' {
97 prec = 1
98 }
99
100 var res, unit string
101 switch {
102 case c >= TB:
103 unit = "TB"
104 res = strconv.FormatFloat(float64(c)/TB, 'f', prec, 64)
105 case c >= GB:
106 unit = "GB"
107 res = strconv.FormatFloat(float64(c)/GB, 'f', prec, 64)
108 case c >= MB:
109 unit = "MB"
110 res = strconv.FormatFloat(float64(c)/MB, 'f', prec, 64)
111 case c >= KB:
112 unit = "kB"
113 res = strconv.FormatFloat(float64(c)/KB, 'f', prec, 64)
114 default:
115 unit = "b"
116 res = strconv.FormatInt(int64(c), 10)
117 }
118
119 if st.Flag(' ') {
120 res += " "
121 }
122 res += unit
123
124 if w, ok := st.Width(); ok {
125 if len(res) < w {
126 pad := strings.Repeat(" ", w-len(res))
127 if st.Flag(int('-')) {
128 res += pad
129 } else {
130 res = pad + res
131 }
132 }
133 }
134
135 io.WriteString(st, res)
136 }
137
138 // CountersNoUnit is a wrapper around Counters with no unit param.
139 func CountersNoUnit(pairFormat string, wcc ...WC) Decorator {
140 return Counters(0, pairFormat, wcc...)
141 }
142
143 // CountersKibiByte is a wrapper around Counters with predefined unit
144 // UnitKiB (bytes/1024).
145 func CountersKibiByte(pairFormat string, wcc ...WC) Decorator {
146 return Counters(UnitKiB, pairFormat, wcc...)
147 }
148
149 // CountersKiloByte is a wrapper around Counters with predefined unit
150 // UnitKB (bytes/1000).
151 func CountersKiloByte(pairFormat string, wcc ...WC) Decorator {
152 return Counters(UnitKB, pairFormat, wcc...)
153 }
154
155 // Counters decorator with dynamic unit measure adjustment.
156 //
157 // `unit` one of [0|UnitKiB|UnitKB] zero for no unit
158 //
159 // `pairFormat` printf compatible verbs for current and total, like "%f" or "%d"
160 //
161 // `wcc` optional WC config
162 //
163 // pairFormat example if UnitKB is chosen:
164 //
165 // "%.1f / %.1f" = "1.0MB / 12.0MB" or "% .1f / % .1f" = "1.0 MB / 12.0 MB"
166 func Counters(unit int, pairFormat string, wcc ...WC) Decorator {
167 var wc WC
168 for _, widthConf := range wcc {
169 wc = widthConf
170 }
171 wc.Init()
172 d := &countersDecorator{
173 WC: wc,
174 unit: unit,
175 pairFormat: pairFormat,
176 }
177 return d
178 }
179
180 type countersDecorator struct {
181 WC
182 unit int
183 pairFormat string
184 completeMsg *string
185 }
186
187 func (d *countersDecorator) Decor(st *Statistics) string {
188 if st.Completed && d.completeMsg != nil {
189 return d.FormatMsg(*d.completeMsg)
190 }
191
192 var str string
193 switch d.unit {
194 case UnitKiB:
195 str = fmt.Sprintf(d.pairFormat, CounterKiB(st.Current), CounterKiB(st.Total))
196 case UnitKB:
197 str = fmt.Sprintf(d.pairFormat, CounterKB(st.Current), CounterKB(st.Total))
198 default:
199 str = fmt.Sprintf(d.pairFormat, st.Current, st.Total)
200 }
201
202 return d.FormatMsg(str)
203 }
204
205 func (d *countersDecorator) OnCompleteMessage(msg string) {
206 d.completeMsg = &msg
207 }
0 package decor
1
2 import (
3 "fmt"
4 "testing"
5 )
6
7 func TestCounterKiB(t *testing.T) {
8 cases := map[string]struct {
9 value int64
10 verb string
11 expected string
12 }{
13 "verb %f": {12345678, "%f", "11.773756MiB"},
14 "verb %.0f": {12345678, "%.0f", "12MiB"},
15 "verb %.1f": {12345678, "%.1f", "11.8MiB"},
16 "verb %.2f": {12345678, "%.2f", "11.77MiB"},
17 "verb %.3f": {12345678, "%.3f", "11.774MiB"},
18
19 "verb % f": {12345678, "% f", "11.773756 MiB"},
20 "verb % .0f": {12345678, "% .0f", "12 MiB"},
21 "verb % .1f": {12345678, "% .1f", "11.8 MiB"},
22 "verb % .2f": {12345678, "% .2f", "11.77 MiB"},
23 "verb % .3f": {12345678, "% .3f", "11.774 MiB"},
24
25 "verb %8.f": {12345678, "%8.f", " 12MiB"},
26 "verb %8.0f": {12345678, "%8.0f", " 12MiB"},
27 "verb %8.1f": {12345678, "%8.1f", " 11.8MiB"},
28 "verb %8.2f": {12345678, "%8.2f", "11.77MiB"},
29 "verb %8.3f": {12345678, "%8.3f", "11.774MiB"},
30
31 "verb % 8.f": {12345678, "% 8.f", " 12 MiB"},
32 "verb % 8.0f": {12345678, "% 8.0f", " 12 MiB"},
33 "verb % 8.1f": {12345678, "% 8.1f", "11.8 MiB"},
34
35 "verb %-8.f": {12345678, "%-8.f", "12MiB "},
36 "verb %-8.0f": {12345678, "%-8.0f", "12MiB "},
37 "verb %-8.1f": {12345678, "%-8.1f", "11.8MiB "},
38 "verb %-8.2f": {12345678, "%8.2f", "11.77MiB"},
39 "verb %-8.3f": {12345678, "%8.3f", "11.774MiB"},
40
41 "verb % -8.f": {12345678, "% -8.f", "12 MiB "},
42 "verb % -8.0f": {12345678, "% -8.0f", "12 MiB "},
43 "verb % -8.1f": {12345678, "% -8.1f", "11.8 MiB"},
44
45 "1000 %f": {1000, "%f", "1000b"},
46 "1000 %d": {1000, "%d", "1000b"},
47 "1000 %s": {1000, "%s", "1000b"},
48 "1024 %f": {1024, "%f", "1.000000KiB"},
49 "1024 %d": {1024, "%d", "1KiB"},
50 "1024 %.1f": {1024, "%.1f", "1.0KiB"},
51 "1024 %s": {1024, "%s", "1.0KiB"},
52 "3*MiB+140KiB %f": {3*MiB + 140*KiB, "%f", "3.136719MiB"},
53 "3*MiB+140KiB %d": {3*MiB + 140*KiB, "%d", "3MiB"},
54 "3*MiB+140KiB %.1f": {3*MiB + 140*KiB, "%.1f", "3.1MiB"},
55 "3*MiB+140KiB %s": {3*MiB + 140*KiB, "%s", "3.1MiB"},
56 "2*GiB %f": {2 * GiB, "%f", "2.000000GiB"},
57 "2*GiB %d": {2 * GiB, "%d", "2GiB"},
58 "2*GiB %.1f": {2 * GiB, "%.1f", "2.0GiB"},
59 "2*GiB %s": {2 * GiB, "%s", "2.0GiB"},
60 "4*TiB %f": {4 * TiB, "%f", "4.000000TiB"},
61 "4*TiB %d": {4 * TiB, "%d", "4TiB"},
62 "4*TiB %.1f": {4 * TiB, "%.1f", "4.0TiB"},
63 "4*TiB %s": {4 * TiB, "%s", "4.0TiB"},
64 }
65 for name, tc := range cases {
66 t.Run(name, func(t *testing.T) {
67 got := fmt.Sprintf(tc.verb, CounterKiB(tc.value))
68 if got != tc.expected {
69 t.Fatalf("expected: %q, got: %q\n", tc.expected, got)
70 }
71 })
72 }
73 }
74
75 func TestCounterKB(t *testing.T) {
76 cases := map[string]struct {
77 value int64
78 verb string
79 expected string
80 }{
81 "verb %f": {12345678, "%f", "12.345678MB"},
82 "verb %.0f": {12345678, "%.0f", "12MB"},
83 "verb %.1f": {12345678, "%.1f", "12.3MB"},
84 "verb %.2f": {12345678, "%.2f", "12.35MB"},
85 "verb %.3f": {12345678, "%.3f", "12.346MB"},
86
87 "verb % f": {12345678, "% f", "12.345678 MB"},
88 "verb % .0f": {12345678, "% .0f", "12 MB"},
89 "verb % .1f": {12345678, "% .1f", "12.3 MB"},
90 "verb % .2f": {12345678, "% .2f", "12.35 MB"},
91 "verb % .3f": {12345678, "% .3f", "12.346 MB"},
92
93 "verb %8.f": {12345678, "%8.f", " 12MB"},
94 "verb %8.0f": {12345678, "%8.0f", " 12MB"},
95 "verb %8.1f": {12345678, "%8.1f", " 12.3MB"},
96 "verb %8.2f": {12345678, "%8.2f", " 12.35MB"},
97 "verb %8.3f": {12345678, "%8.3f", "12.346MB"},
98
99 "verb % 8.f": {12345678, "% 8.f", " 12 MB"},
100 "verb % 8.0f": {12345678, "% 8.0f", " 12 MB"},
101 "verb % 8.1f": {12345678, "% 8.1f", " 12.3 MB"},
102
103 "verb %-8.f": {12345678, "%-8.f", "12MB "},
104 "verb %-8.0f": {12345678, "%-8.0f", "12MB "},
105 "verb %-8.1f": {12345678, "%-8.1f", "12.3MB "},
106 "verb %-8.2f": {12345678, "%8.2f", " 12.35MB"},
107 "verb %-8.3f": {12345678, "%8.3f", "12.346MB"},
108
109 "verb % -8.f": {12345678, "% -8.f", "12 MB "},
110 "verb % -8.0f": {12345678, "% -8.0f", "12 MB "},
111 "verb % -8.1f": {12345678, "% -8.1f", "12.3 MB "},
112
113 "1000 %f": {1000, "%f", "1.000000kB"},
114 "1000 %d": {1000, "%d", "1kB"},
115 "1000 %s": {1000, "%s", "1.0kB"},
116 "1024 %f": {1024, "%f", "1.024000kB"},
117 "1024 %d": {1024, "%d", "1kB"},
118 "1024 %.1f": {1024, "%.1f", "1.0kB"},
119 "1024 %s": {1024, "%s", "1.0kB"},
120 "3*MB+140*KB %f": {3*MB + 140*KB, "%f", "3.140000MB"},
121 "3*MB+140*KB %d": {3*MB + 140*KB, "%d", "3MB"},
122 "3*MB+140*KB %.1f": {3*MB + 140*KB, "%.1f", "3.1MB"},
123 "3*MB+140*KB %s": {3*MB + 140*KB, "%s", "3.1MB"},
124 "2*GB %f": {2 * GB, "%f", "2.000000GB"},
125 "2*GB %d": {2 * GB, "%d", "2GB"},
126 "2*GB %.1f": {2 * GB, "%.1f", "2.0GB"},
127 "2*GB %s": {2 * GB, "%s", "2.0GB"},
128 "4*TB %f": {4 * TB, "%f", "4.000000TB"},
129 "4*TB %d": {4 * TB, "%d", "4TB"},
130 "4*TB %.1f": {4 * TB, "%.1f", "4.0TB"},
131 "4*TB %s": {4 * TB, "%s", "4.0TB"},
132 }
133 for name, tc := range cases {
134 t.Run(name, func(t *testing.T) {
135 got := fmt.Sprintf(tc.verb, CounterKB(tc.value))
136 if got != tc.expected {
137 t.Fatalf("expected: %q, got: %q\n", tc.expected, got)
138 }
139 })
140 }
141 }
0 package decor
1
2 import (
3 "fmt"
4 "time"
5 "unicode/utf8"
6 )
7
8 const (
9 // DidentRight bit specifies identation direction.
10 // |foo |b | With DidentRight
11 // | foo| b| Without DidentRight
12 DidentRight = 1 << iota
13
14 // DextraSpace bit adds extra space, makes sense with DSyncWidth only.
15 // When DidentRight bit set, the space will be added to the right,
16 // otherwise to the left.
17 DextraSpace
18
19 // DSyncWidth bit enables same column width synchronization.
20 // Effective with multiple bars only.
21 DSyncWidth
22
23 // DSyncWidthR is shortcut for DSyncWidth|DidentRight
24 DSyncWidthR = DSyncWidth | DidentRight
25
26 // DSyncSpace is shortcut for DSyncWidth|DextraSpace
27 DSyncSpace = DSyncWidth | DextraSpace
28
29 // DSyncSpaceR is shortcut for DSyncWidth|DextraSpace|DidentRight
30 DSyncSpaceR = DSyncWidth | DextraSpace | DidentRight
31 )
32
33 // TimeStyle enum.
34 type TimeStyle int
35
36 // TimeStyle kinds.
37 const (
38 ET_STYLE_GO TimeStyle = iota
39 ET_STYLE_HHMMSS
40 ET_STYLE_HHMM
41 ET_STYLE_MMSS
42 )
43
44 // Statistics is a struct, which gets passed to a Decorator.
45 type Statistics struct {
46 ID int
47 Completed bool
48 Total int64
49 Current int64
50 }
51
52 // Decorator interface.
53 // A decorator must implement this interface, in order to be used with
54 // mpb library.
55 type Decorator interface {
56 Decor(*Statistics) string
57 Syncable
58 }
59
60 // Syncable interface.
61 // All decorators implement this interface implicitly. Its Syncable
62 // method exposes width sync channel, if sync is enabled.
63 type Syncable interface {
64 Syncable() (bool, chan int)
65 }
66
67 // OnCompleteMessenger interface.
68 // Decorators implementing this interface suppose to return provided
69 // string on complete event.
70 type OnCompleteMessenger interface {
71 OnCompleteMessage(string)
72 }
73
74 // AmountReceiver interface.
75 // If decorator needs to receive increment amount, so this is the right
76 // interface to implement.
77 type AmountReceiver interface {
78 NextAmount(int, ...time.Duration)
79 }
80
81 // ShutdownListener interface.
82 // If decorator needs to be notified once upon bar shutdown event, so
83 // this is the right interface to implement.
84 type ShutdownListener interface {
85 Shutdown()
86 }
87
88 // Global convenience shortcuts
89 var (
90 WCSyncWidth = WC{C: DSyncWidth}
91 WCSyncWidthR = WC{C: DSyncWidthR}
92 WCSyncSpace = WC{C: DSyncSpace}
93 WCSyncSpaceR = WC{C: DSyncSpaceR}
94 )
95
96 // WC is a struct with two public fields W and C, both of int type.
97 // W represents width and C represents bit set of width related config.
98 // A decorator should embed WC, in order to become Syncable.
99 type WC struct {
100 W int
101 C int
102 format string
103 wsync chan int
104 }
105
106 // FormatMsg formats final message according to WC.W and WC.C.
107 // Should be called by any Decorator implementation.
108 func (wc WC) FormatMsg(msg string) string {
109 if (wc.C & DSyncWidth) != 0 {
110 wc.wsync <- utf8.RuneCountInString(msg)
111 max := <-wc.wsync
112 if max == 0 {
113 max = wc.W
114 }
115 if (wc.C & DextraSpace) != 0 {
116 max++
117 }
118 return fmt.Sprintf(fmt.Sprintf(wc.format, max), msg)
119 }
120 return fmt.Sprintf(fmt.Sprintf(wc.format, wc.W), msg)
121 }
122
123 // Init initializes width related config.
124 func (wc *WC) Init() {
125 wc.format = "%%"
126 if (wc.C & DidentRight) != 0 {
127 wc.format += "-"
128 }
129 wc.format += "%ds"
130 if (wc.C & DSyncWidth) != 0 {
131 wc.wsync = make(chan int)
132 }
133 }
134
135 // Syncable is implementation of Syncable interface.
136 func (wc *WC) Syncable() (bool, chan int) {
137 return (wc.C & DSyncWidth) != 0, wc.wsync
138 }
139
140 // OnComplete returns decorator, which wraps provided decorator, with
141 // sole purpose to display provided message on complete event.
142 //
143 // `decorator` Decorator to wrap
144 //
145 // `message` message to display on complete event
146 func OnComplete(decorator Decorator, message string) Decorator {
147 if d, ok := decorator.(OnCompleteMessenger); ok {
148 d.OnCompleteMessage(message)
149 }
150 return decorator
151 }
0 // Copyright (C) 2016-2018 Vladimir Bauer
1 // Use of this source code is governed by a BSD-style
2 // license that can be found in the LICENSE file.
3
4 /*
5 Package decor contains common decorators used by "github.com/vbauerster/mpb" package.
6
7 Some decorators returned by this package might have a closure state. It is ok to use
8 decorators concurrently, unless you share the same decorator among multiple
9 *mpb.Bar instances. To avoid data races, create new decorator per *mpb.Bar instance.
10
11 Don't:
12
13 p := mpb.New()
14 name := decor.Name("bar")
15 p.AddBar(100, mpb.AppendDecorators(name))
16 p.AddBar(100, mpb.AppendDecorators(name))
17
18 Do:
19
20 p := mpb.New()
21 p.AddBar(100, mpb.AppendDecorators(decor.Name("bar1")))
22 p.AddBar(100, mpb.AppendDecorators(decor.Name("bar2")))
23 */
24 package decor
0 package decor
1
2 import (
3 "fmt"
4 "time"
5 )
6
7 // Elapsed returns elapsed time decorator.
8 //
9 // `style` one of [ET_STYLE_GO|ET_STYLE_HHMMSS|ET_STYLE_HHMM|ET_STYLE_MMSS]
10 //
11 // `wcc` optional WC config
12 func Elapsed(style TimeStyle, wcc ...WC) Decorator {
13 var wc WC
14 for _, widthConf := range wcc {
15 wc = widthConf
16 }
17 wc.Init()
18 d := &elapsedDecorator{
19 WC: wc,
20 style: style,
21 startTime: time.Now(),
22 }
23 return d
24 }
25
26 type elapsedDecorator struct {
27 WC
28 style TimeStyle
29 startTime time.Time
30 msg string
31 completeMsg *string
32 }
33
34 func (d *elapsedDecorator) Decor(st *Statistics) string {
35 if st.Completed {
36 if d.completeMsg != nil {
37 return d.FormatMsg(*d.completeMsg)
38 }
39 return d.FormatMsg(d.msg)
40 }
41
42 timeElapsed := time.Since(d.startTime)
43 hours := int64((timeElapsed / time.Hour) % 60)
44 minutes := int64((timeElapsed / time.Minute) % 60)
45 seconds := int64((timeElapsed / time.Second) % 60)
46
47 switch d.style {
48 case ET_STYLE_GO:
49 d.msg = fmt.Sprint(time.Duration(timeElapsed.Seconds()) * time.Second)
50 case ET_STYLE_HHMMSS:
51 d.msg = fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
52 case ET_STYLE_HHMM:
53 d.msg = fmt.Sprintf("%02d:%02d", hours, minutes)
54 case ET_STYLE_MMSS:
55 if hours > 0 {
56 d.msg = fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
57 } else {
58 d.msg = fmt.Sprintf("%02d:%02d", minutes, seconds)
59 }
60 }
61
62 return d.FormatMsg(d.msg)
63 }
64
65 func (d *elapsedDecorator) OnCompleteMessage(msg string) {
66 d.completeMsg = &msg
67 }
0 package decor
1
2 import (
3 "fmt"
4 "math"
5 "time"
6
7 "github.com/VividCortex/ewma"
8 )
9
10 type TimeNormalizer func(time.Duration) time.Duration
11
12 // EwmaETA exponential-weighted-moving-average based ETA decorator.
13 //
14 // `style` one of [ET_STYLE_GO|ET_STYLE_HHMMSS|ET_STYLE_HHMM|ET_STYLE_MMSS]
15 //
16 // `age` is the previous N samples to average over.
17 //
18 // `wcc` optional WC config
19 func EwmaETA(style TimeStyle, age float64, wcc ...WC) Decorator {
20 return MovingAverageETA(style, ewma.NewMovingAverage(age), NopNormalizer(), wcc...)
21 }
22
23 // MovingAverageETA decorator relies on MovingAverage implementation to calculate its average.
24 //
25 // `style` one of [ET_STYLE_GO|ET_STYLE_HHMMSS|ET_STYLE_HHMM|ET_STYLE_MMSS]
26 //
27 // `average` available implementations of MovingAverage [ewma.MovingAverage|NewMedian|NewMedianEwma]
28 //
29 // `normalizer` available implementations are [NopNormalizer|FixedIntervalTimeNormalizer|MaxTolerateTimeNormalizer]
30 //
31 // `wcc` optional WC config
32 func MovingAverageETA(style TimeStyle, average MovingAverage, normalizer TimeNormalizer, wcc ...WC) Decorator {
33 var wc WC
34 for _, widthConf := range wcc {
35 wc = widthConf
36 }
37 wc.Init()
38 d := &movingAverageETA{
39 WC: wc,
40 style: style,
41 average: average,
42 normalizer: normalizer,
43 }
44 return d
45 }
46
47 type movingAverageETA struct {
48 WC
49 style TimeStyle
50 average ewma.MovingAverage
51 completeMsg *string
52 normalizer TimeNormalizer
53 }
54
55 func (d *movingAverageETA) Decor(st *Statistics) string {
56 if st.Completed && d.completeMsg != nil {
57 return d.FormatMsg(*d.completeMsg)
58 }
59
60 v := math.Round(d.average.Value())
61 remaining := d.normalizer(time.Duration((st.Total - st.Current) * int64(v)))
62 hours := int64((remaining / time.Hour) % 60)
63 minutes := int64((remaining / time.Minute) % 60)
64 seconds := int64((remaining / time.Second) % 60)
65
66 var str string
67 switch d.style {
68 case ET_STYLE_GO:
69 str = fmt.Sprint(time.Duration(remaining.Seconds()) * time.Second)
70 case ET_STYLE_HHMMSS:
71 str = fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
72 case ET_STYLE_HHMM:
73 str = fmt.Sprintf("%02d:%02d", hours, minutes)
74 case ET_STYLE_MMSS:
75 if hours > 0 {
76 str = fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
77 } else {
78 str = fmt.Sprintf("%02d:%02d", minutes, seconds)
79 }
80 }
81
82 return d.FormatMsg(str)
83 }
84
85 func (d *movingAverageETA) NextAmount(n int, wdd ...time.Duration) {
86 var workDuration time.Duration
87 for _, wd := range wdd {
88 workDuration = wd
89 }
90 lastItemEstimate := float64(workDuration) / float64(n)
91 if math.IsInf(lastItemEstimate, 0) || math.IsNaN(lastItemEstimate) {
92 return
93 }
94 d.average.Add(lastItemEstimate)
95 }
96
97 func (d *movingAverageETA) OnCompleteMessage(msg string) {
98 d.completeMsg = &msg
99 }
100
101 // AverageETA decorator.
102 //
103 // `style` one of [ET_STYLE_GO|ET_STYLE_HHMMSS|ET_STYLE_HHMM|ET_STYLE_MMSS]
104 //
105 // `wcc` optional WC config
106 func AverageETA(style TimeStyle, wcc ...WC) Decorator {
107 var wc WC
108 for _, widthConf := range wcc {
109 wc = widthConf
110 }
111 wc.Init()
112 d := &averageETA{
113 WC: wc,
114 style: style,
115 startTime: time.Now(),
116 }
117 return d
118 }
119
120 type averageETA struct {
121 WC
122 style TimeStyle
123 startTime time.Time
124 completeMsg *string
125 }
126
127 func (d *averageETA) Decor(st *Statistics) string {
128 if st.Completed && d.completeMsg != nil {
129 return d.FormatMsg(*d.completeMsg)
130 }
131
132 var str string
133 timeElapsed := time.Since(d.startTime)
134 v := math.Round(float64(timeElapsed) / float64(st.Current))
135 if math.IsInf(v, 0) || math.IsNaN(v) {
136 v = 0
137 }
138 remaining := time.Duration((st.Total - st.Current) * int64(v))
139 hours := int64((remaining / time.Hour) % 60)
140 minutes := int64((remaining / time.Minute) % 60)
141 seconds := int64((remaining / time.Second) % 60)
142
143 switch d.style {
144 case ET_STYLE_GO:
145 str = fmt.Sprint(time.Duration(remaining.Seconds()) * time.Second)
146 case ET_STYLE_HHMMSS:
147 str = fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
148 case ET_STYLE_HHMM:
149 str = fmt.Sprintf("%02d:%02d", hours, minutes)
150 case ET_STYLE_MMSS:
151 if hours > 0 {
152 str = fmt.Sprintf("%02d:%02d:%02d", hours, minutes, seconds)
153 } else {
154 str = fmt.Sprintf("%02d:%02d", minutes, seconds)
155 }
156 }
157
158 return d.FormatMsg(str)
159 }
160
161 func (d *averageETA) OnCompleteMessage(msg string) {
162 d.completeMsg = &msg
163 }
164
165 func MaxTolerateTimeNormalizer(maxTolerate time.Duration) TimeNormalizer {
166 var normalized time.Duration
167 var lastCall time.Time
168 return func(remaining time.Duration) time.Duration {
169 if diff := normalized - remaining; diff <= 0 || diff > maxTolerate || remaining < maxTolerate/2 {
170 normalized = remaining
171 lastCall = time.Now()
172 return remaining
173 }
174 normalized -= time.Since(lastCall)
175 lastCall = time.Now()
176 return normalized
177 }
178 }
179
180 func FixedIntervalTimeNormalizer(updInterval int) TimeNormalizer {
181 var normalized time.Duration
182 var lastCall time.Time
183 var count int
184 return func(remaining time.Duration) time.Duration {
185 if count == 0 || remaining <= time.Duration(15*time.Second) {
186 count = updInterval
187 normalized = remaining
188 lastCall = time.Now()
189 return remaining
190 }
191 count--
192 normalized -= time.Since(lastCall)
193 lastCall = time.Now()
194 if normalized > 0 {
195 return normalized
196 }
197 return remaining
198 }
199 }
200
201 func NopNormalizer() TimeNormalizer {
202 return func(remaining time.Duration) time.Duration {
203 return remaining
204 }
205 }
0 package decor
1
2 import (
3 "sort"
4
5 "github.com/VividCortex/ewma"
6 )
7
8 // MovingAverage is the interface that computes a moving average over
9 // a time-series stream of numbers. The average may be over a window
10 // or exponentially decaying.
11 type MovingAverage interface {
12 Add(float64)
13 Value() float64
14 Set(float64)
15 }
16
17 type medianWindow [3]float64
18
19 func (s *medianWindow) Len() int { return len(s) }
20 func (s *medianWindow) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
21 func (s *medianWindow) Less(i, j int) bool { return s[i] < s[j] }
22
23 func (s *medianWindow) Add(value float64) {
24 s[0], s[1] = s[1], s[2]
25 s[2] = value
26 }
27
28 func (s *medianWindow) Value() float64 {
29 tmp := *s
30 sort.Sort(&tmp)
31 return tmp[1]
32 }
33
34 func (s *medianWindow) Set(value float64) {
35 for i := 0; i < len(s); i++ {
36 s[i] = value
37 }
38 }
39
40 // NewMedian is fixed last 3 samples median MovingAverage.
41 func NewMedian() MovingAverage {
42 return new(medianWindow)
43 }
44
45 type medianEwma struct {
46 count uint
47 median MovingAverage
48 MovingAverage
49 }
50
51 func (s *medianEwma) Add(v float64) {
52 s.median.Add(v)
53 if s.count >= 2 {
54 s.MovingAverage.Add(s.median.Value())
55 }
56 s.count++
57 }
58
59 // NewMedianEwma is ewma based MovingAverage, which gets its values
60 // from median MovingAverage.
61 func NewMedianEwma(age ...float64) MovingAverage {
62 return &medianEwma{
63 MovingAverage: ewma.NewMovingAverage(age...),
64 median: NewMedian(),
65 }
66 }
0 package decor
1
2 // StaticName returns name decorator.
3 //
4 // `name` string to display
5 //
6 // `wcc` optional WC config
7 func StaticName(name string, wcc ...WC) Decorator {
8 return Name(name, wcc...)
9 }
10
11 // Name returns name decorator.
12 //
13 // `name` string to display
14 //
15 // `wcc` optional WC config
16 func Name(name string, wcc ...WC) Decorator {
17 var wc WC
18 for _, widthConf := range wcc {
19 wc = widthConf
20 }
21 wc.Init()
22 d := &nameDecorator{
23 WC: wc,
24 msg: name,
25 }
26 return d
27 }
28
29 type nameDecorator struct {
30 WC
31 msg string
32 complete *string
33 }
34
35 func (d *nameDecorator) Decor(st *Statistics) string {
36 if st.Completed && d.complete != nil {
37 return d.FormatMsg(*d.complete)
38 }
39 return d.FormatMsg(d.msg)
40 }
41
42 func (d *nameDecorator) OnCompleteMessage(msg string) {
43 d.complete = &msg
44 }
0 package decor
1
2 import (
3 "fmt"
4
5 "github.com/vbauerster/mpb/internal"
6 )
7
8 // Percentage returns percentage decorator.
9 //
10 // `wcc` optional WC config
11 func Percentage(wcc ...WC) Decorator {
12 var wc WC
13 for _, widthConf := range wcc {
14 wc = widthConf
15 }
16 wc.Init()
17 d := &percentageDecorator{
18 WC: wc,
19 }
20 return d
21 }
22
23 type percentageDecorator struct {
24 WC
25 completeMsg *string
26 }
27
28 func (d *percentageDecorator) Decor(st *Statistics) string {
29 if st.Completed && d.completeMsg != nil {
30 return d.FormatMsg(*d.completeMsg)
31 }
32 str := fmt.Sprintf("%d %%", internal.Percentage(st.Total, st.Current, 100))
33 return d.FormatMsg(str)
34 }
35
36 func (d *percentageDecorator) OnCompleteMessage(msg string) {
37 d.completeMsg = &msg
38 }
0 package decor
1
2 import (
3 "fmt"
4 "io"
5 "math"
6 "strconv"
7 "strings"
8 "time"
9
10 "github.com/VividCortex/ewma"
11 )
12
13 type SpeedKiB float64
14
15 func (s SpeedKiB) Format(st fmt.State, verb rune) {
16 prec, ok := st.Precision()
17
18 if verb == 'd' || !ok {
19 prec = 0
20 }
21 if verb == 'f' && !ok {
22 prec = 6
23 }
24 // retain old beahavior if s verb used
25 if verb == 's' {
26 prec = 1
27 }
28
29 var res, unit string
30 switch {
31 case s >= TiB:
32 unit = "TiB/s"
33 res = strconv.FormatFloat(float64(s)/TiB, 'f', prec, 64)
34 case s >= GiB:
35 unit = "GiB/s"
36 res = strconv.FormatFloat(float64(s)/GiB, 'f', prec, 64)
37 case s >= MiB:
38 unit = "MiB/s"
39 res = strconv.FormatFloat(float64(s)/MiB, 'f', prec, 64)
40 case s >= KiB:
41 unit = "KiB/s"
42 res = strconv.FormatFloat(float64(s)/KiB, 'f', prec, 64)
43 default:
44 unit = "b/s"
45 res = strconv.FormatInt(int64(s), 10)
46 }
47
48 if st.Flag(' ') {
49 res += " "
50 }
51 res += unit
52
53 if w, ok := st.Width(); ok {
54 if len(res) < w {
55 pad := strings.Repeat(" ", w-len(res))
56 if st.Flag(int('-')) {
57 res += pad
58 } else {
59 res = pad + res
60 }
61 }
62 }
63
64 io.WriteString(st, res)
65 }
66
67 type SpeedKB float64
68
69 func (s SpeedKB) Format(st fmt.State, verb rune) {
70 prec, ok := st.Precision()
71
72 if verb == 'd' || !ok {
73 prec = 0
74 }
75 if verb == 'f' && !ok {
76 prec = 6
77 }
78 // retain old beahavior if s verb used
79 if verb == 's' {
80 prec = 1
81 }
82
83 var res, unit string
84 switch {
85 case s >= TB:
86 unit = "TB/s"
87 res = strconv.FormatFloat(float64(s)/TB, 'f', prec, 64)
88 case s >= GB:
89 unit = "GB/s"
90 res = strconv.FormatFloat(float64(s)/GB, 'f', prec, 64)
91 case s >= MB:
92 unit = "MB/s"
93 res = strconv.FormatFloat(float64(s)/MB, 'f', prec, 64)
94 case s >= KB:
95 unit = "kB/s"
96 res = strconv.FormatFloat(float64(s)/KB, 'f', prec, 64)
97 default:
98 unit = "b/s"
99 res = strconv.FormatInt(int64(s), 10)
100 }
101
102 if st.Flag(' ') {
103 res += " "
104 }
105 res += unit
106
107 if w, ok := st.Width(); ok {
108 if len(res) < w {
109 pad := strings.Repeat(" ", w-len(res))
110 if st.Flag(int('-')) {
111 res += pad
112 } else {
113 res = pad + res
114 }
115 }
116 }
117
118 io.WriteString(st, res)
119 }
120
121 // EwmaSpeed exponential-weighted-moving-average based speed decorator,
122 // with dynamic unit measure adjustment.
123 //
124 // `unit` one of [0|UnitKiB|UnitKB] zero for no unit
125 //
126 // `unitFormat` printf compatible verb for value, like "%f" or "%d"
127 //
128 // `average` MovingAverage implementation
129 //
130 // `wcc` optional WC config
131 //
132 // unitFormat example if UnitKiB is chosen:
133 //
134 // "%.1f" = "1.0MiB/s" or "% .1f" = "1.0 MiB/s"
135 func EwmaSpeed(unit int, unitFormat string, age float64, wcc ...WC) Decorator {
136 return MovingAverageSpeed(unit, unitFormat, ewma.NewMovingAverage(age), wcc...)
137 }
138
139 // MovingAverageSpeed decorator relies on MovingAverage implementation
140 // to calculate its average.
141 //
142 // `unit` one of [0|UnitKiB|UnitKB] zero for no unit
143 //
144 // `unitFormat` printf compatible verb for value, like "%f" or "%d"
145 //
146 // `average` MovingAverage implementation
147 //
148 // `wcc` optional WC config
149 func MovingAverageSpeed(unit int, unitFormat string, average MovingAverage, wcc ...WC) Decorator {
150 var wc WC
151 for _, widthConf := range wcc {
152 wc = widthConf
153 }
154 wc.Init()
155 d := &movingAverageSpeed{
156 WC: wc,
157 unit: unit,
158 unitFormat: unitFormat,
159 average: average,
160 }
161 return d
162 }
163
164 type movingAverageSpeed struct {
165 WC
166 unit int
167 unitFormat string
168 average ewma.MovingAverage
169 msg string
170 completeMsg *string
171 }
172
173 func (d *movingAverageSpeed) Decor(st *Statistics) string {
174 if st.Completed {
175 if d.completeMsg != nil {
176 return d.FormatMsg(*d.completeMsg)
177 }
178 return d.FormatMsg(d.msg)
179 }
180
181 speed := d.average.Value()
182 switch d.unit {
183 case UnitKiB:
184 d.msg = fmt.Sprintf(d.unitFormat, SpeedKiB(speed))
185 case UnitKB:
186 d.msg = fmt.Sprintf(d.unitFormat, SpeedKB(speed))
187 default:
188 d.msg = fmt.Sprintf(d.unitFormat, speed)
189 }
190
191 return d.FormatMsg(d.msg)
192 }
193
194 func (s *movingAverageSpeed) NextAmount(n int, wdd ...time.Duration) {
195 var workDuration time.Duration
196 for _, wd := range wdd {
197 workDuration = wd
198 }
199 speed := float64(n) / workDuration.Seconds() / 1000
200 if math.IsInf(speed, 0) || math.IsNaN(speed) {
201 return
202 }
203 s.average.Add(speed)
204 }
205
206 func (d *movingAverageSpeed) OnCompleteMessage(msg string) {
207 d.completeMsg = &msg
208 }
209
210 // AverageSpeed decorator with dynamic unit measure adjustment.
211 //
212 // `unit` one of [0|UnitKiB|UnitKB] zero for no unit
213 //
214 // `unitFormat` printf compatible verb for value, like "%f" or "%d"
215 //
216 // `wcc` optional WC config
217 //
218 // unitFormat example if UnitKiB is chosen:
219 //
220 // "%.1f" = "1.0MiB/s" or "% .1f" = "1.0 MiB/s"
221 func AverageSpeed(unit int, unitFormat string, wcc ...WC) Decorator {
222 var wc WC
223 for _, widthConf := range wcc {
224 wc = widthConf
225 }
226 wc.Init()
227 d := &averageSpeed{
228 WC: wc,
229 unit: unit,
230 unitFormat: unitFormat,
231 startTime: time.Now(),
232 }
233 return d
234 }
235
236 type averageSpeed struct {
237 WC
238 unit int
239 unitFormat string
240 startTime time.Time
241 msg string
242 completeMsg *string
243 }
244
245 func (d *averageSpeed) Decor(st *Statistics) string {
246 if st.Completed {
247 if d.completeMsg != nil {
248 return d.FormatMsg(*d.completeMsg)
249 }
250 return d.FormatMsg(d.msg)
251 }
252
253 timeElapsed := time.Since(d.startTime)
254 speed := float64(st.Current) / timeElapsed.Seconds()
255
256 switch d.unit {
257 case UnitKiB:
258 d.msg = fmt.Sprintf(d.unitFormat, SpeedKiB(speed))
259 case UnitKB:
260 d.msg = fmt.Sprintf(d.unitFormat, SpeedKB(speed))
261 default:
262 d.msg = fmt.Sprintf(d.unitFormat, speed)
263 }
264
265 return d.FormatMsg(d.msg)
266 }
267
268 func (d *averageSpeed) OnCompleteMessage(msg string) {
269 d.completeMsg = &msg
270 }
0 package decor
1
2 import (
3 "fmt"
4 "testing"
5 )
6
7 func TestSpeedKiB(t *testing.T) {
8 cases := map[string]struct {
9 value int64
10 verb string
11 expected string
12 }{
13 "verb %f": {12345678, "%f", "11.773756MiB/s"},
14 "verb %.0f": {12345678, "%.0f", "12MiB/s"},
15 "verb %.1f": {12345678, "%.1f", "11.8MiB/s"},
16 "verb %.2f": {12345678, "%.2f", "11.77MiB/s"},
17 "verb %.3f": {12345678, "%.3f", "11.774MiB/s"},
18
19 "verb % f": {12345678, "% f", "11.773756 MiB/s"},
20 "verb % .0f": {12345678, "% .0f", "12 MiB/s"},
21 "verb % .1f": {12345678, "% .1f", "11.8 MiB/s"},
22 "verb % .2f": {12345678, "% .2f", "11.77 MiB/s"},
23 "verb % .3f": {12345678, "% .3f", "11.774 MiB/s"},
24
25 "verb %10.f": {12345678, "%10.f", " 12MiB/s"},
26 "verb %10.0f": {12345678, "%10.0f", " 12MiB/s"},
27 "verb %10.1f": {12345678, "%10.1f", " 11.8MiB/s"},
28 "verb %10.2f": {12345678, "%10.2f", "11.77MiB/s"},
29 "verb %10.3f": {12345678, "%10.3f", "11.774MiB/s"},
30
31 "verb % 10.f": {12345678, "% 10.f", " 12 MiB/s"},
32 "verb % 10.0f": {12345678, "% 10.0f", " 12 MiB/s"},
33 "verb % 10.1f": {12345678, "% 10.1f", "11.8 MiB/s"},
34
35 "verb %-10.f": {12345678, "%-10.f", "12MiB/s "},
36 "verb %-10.0f": {12345678, "%-10.0f", "12MiB/s "},
37 "verb %-10.1f": {12345678, "%-10.1f", "11.8MiB/s "},
38 "verb %-10.2f": {12345678, "%10.2f", "11.77MiB/s"},
39 "verb %-10.3f": {12345678, "%10.3f", "11.774MiB/s"},
40
41 "verb % -10.f": {12345678, "% -10.f", "12 MiB/s "},
42 "verb % -10.0f": {12345678, "% -10.0f", "12 MiB/s "},
43 "verb % -10.1f": {12345678, "% -10.1f", "11.8 MiB/s"},
44
45 "1000 %f": {1000, "%f", "1000b/s"},
46 "1000 %d": {1000, "%d", "1000b/s"},
47 "1000 %s": {1000, "%s", "1000b/s"},
48 "1024 %f": {1024, "%f", "1.000000KiB/s"},
49 "1024 %d": {1024, "%d", "1KiB/s"},
50 "1024 %.1f": {1024, "%.1f", "1.0KiB/s"},
51 "1024 %s": {1024, "%s", "1.0KiB/s"},
52 "3*MiB/s+140KiB/s %f": {3*MiB + 140*KiB, "%f", "3.136719MiB/s"},
53 "3*MiB/s+140KiB/s %d": {3*MiB + 140*KiB, "%d", "3MiB/s"},
54 "3*MiB/s+140KiB/s %.1f": {3*MiB + 140*KiB, "%.1f", "3.1MiB/s"},
55 "3*MiB/s+140KiB/s %s": {3*MiB + 140*KiB, "%s", "3.1MiB/s"},
56 "2*GiB/s %f": {2 * GiB, "%f", "2.000000GiB/s"},
57 "2*GiB/s %d": {2 * GiB, "%d", "2GiB/s"},
58 "2*GiB/s %.1f": {2 * GiB, "%.1f", "2.0GiB/s"},
59 "2*GiB/s %s": {2 * GiB, "%s", "2.0GiB/s"},
60 "4*TiB/s %f": {4 * TiB, "%f", "4.000000TiB/s"},
61 "4*TiB/s %d": {4 * TiB, "%d", "4TiB/s"},
62 "4*TiB/s %.1f": {4 * TiB, "%.1f", "4.0TiB/s"},
63 "4*TiB/s %s": {4 * TiB, "%s", "4.0TiB/s"},
64 }
65 for name, tc := range cases {
66 t.Run(name, func(t *testing.T) {
67 got := fmt.Sprintf(tc.verb, SpeedKiB(tc.value))
68 if got != tc.expected {
69 t.Fatalf("expected: %q, got: %q\n", tc.expected, got)
70 }
71 })
72 }
73 }
74
75 func TestSpeedKB(t *testing.T) {
76 cases := map[string]struct {
77 value int64
78 verb string
79 expected string
80 }{
81 "verb %f": {12345678, "%f", "12.345678MB/s"},
82 "verb %.0f": {12345678, "%.0f", "12MB/s"},
83 "verb %.1f": {12345678, "%.1f", "12.3MB/s"},
84 "verb %.2f": {12345678, "%.2f", "12.35MB/s"},
85 "verb %.3f": {12345678, "%.3f", "12.346MB/s"},
86
87 "verb % f": {12345678, "% f", "12.345678 MB/s"},
88 "verb % .0f": {12345678, "% .0f", "12 MB/s"},
89 "verb % .1f": {12345678, "% .1f", "12.3 MB/s"},
90 "verb % .2f": {12345678, "% .2f", "12.35 MB/s"},
91 "verb % .3f": {12345678, "% .3f", "12.346 MB/s"},
92
93 "verb %10.f": {12345678, "%10.f", " 12MB/s"},
94 "verb %10.0f": {12345678, "%10.0f", " 12MB/s"},
95 "verb %10.1f": {12345678, "%10.1f", " 12.3MB/s"},
96 "verb %10.2f": {12345678, "%10.2f", " 12.35MB/s"},
97 "verb %10.3f": {12345678, "%10.3f", "12.346MB/s"},
98
99 "verb % 10.f": {12345678, "% 10.f", " 12 MB/s"},
100 "verb % 10.0f": {12345678, "% 10.0f", " 12 MB/s"},
101 "verb % 10.1f": {12345678, "% 10.1f", " 12.3 MB/s"},
102
103 "verb %-10.f": {12345678, "%-10.f", "12MB/s "},
104 "verb %-10.0f": {12345678, "%-10.0f", "12MB/s "},
105 "verb %-10.1f": {12345678, "%-10.1f", "12.3MB/s "},
106 "verb %-10.2f": {12345678, "%10.2f", " 12.35MB/s"},
107 "verb %-10.3f": {12345678, "%10.3f", "12.346MB/s"},
108
109 "verb % -10.f": {12345678, "% -10.f", "12 MB/s "},
110 "verb % -10.0f": {12345678, "% -10.0f", "12 MB/s "},
111 "verb % -10.1f": {12345678, "% -10.1f", "12.3 MB/s "},
112
113 "1000 %f": {1000, "%f", "1.000000kB/s"},
114 "1000 %d": {1000, "%d", "1kB/s"},
115 "1000 %s": {1000, "%s", "1.0kB/s"},
116 "1024 %f": {1024, "%f", "1.024000kB/s"},
117 "1024 %d": {1024, "%d", "1kB/s"},
118 "1024 %.1f": {1024, "%.1f", "1.0kB/s"},
119 "1024 %s": {1024, "%s", "1.0kB/s"},
120 "3*MB/s+140*KB/s %f": {3*MB + 140*KB, "%f", "3.140000MB/s"},
121 "3*MB/s+140*KB/s %d": {3*MB + 140*KB, "%d", "3MB/s"},
122 "3*MB/s+140*KB/s %.1f": {3*MB + 140*KB, "%.1f", "3.1MB/s"},
123 "3*MB/s+140*KB/s %s": {3*MB + 140*KB, "%s", "3.1MB/s"},
124 "2*GB/s %f": {2 * GB, "%f", "2.000000GB/s"},
125 "2*GB/s %d": {2 * GB, "%d", "2GB/s"},
126 "2*GB/s %.1f": {2 * GB, "%.1f", "2.0GB/s"},
127 "2*GB/s %s": {2 * GB, "%s", "2.0GB/s"},
128 "4*TB/s %f": {4 * TB, "%f", "4.000000TB/s"},
129 "4*TB/s %d": {4 * TB, "%d", "4TB/s"},
130 "4*TB/s %.1f": {4 * TB, "%.1f", "4.0TB/s"},
131 "4*TB/s %s": {4 * TB, "%s", "4.0TB/s"},
132 }
133 for name, tc := range cases {
134 t.Run(name, func(t *testing.T) {
135 got := fmt.Sprintf(tc.verb, SpeedKB(tc.value))
136 if got != tc.expected {
137 t.Fatalf("expected: %q, got: %q\n", tc.expected, got)
138 }
139 })
140 }
141 }
0 package mpb_test
1
2 import (
3 "sync"
4 "testing"
5
6 . "github.com/vbauerster/mpb"
7 "github.com/vbauerster/mpb/decor"
8 )
9
10 func TestNameDecorator(t *testing.T) {
11 tests := []struct {
12 decorator decor.Decorator
13 want string
14 }{
15 {
16 decorator: decor.Name("Test"),
17 want: "Test",
18 },
19 {
20 decorator: decor.Name("Test", decor.WC{W: len("Test")}),
21 want: "Test",
22 },
23 {
24 decorator: decor.Name("Test", decor.WC{W: 10}),
25 want: " Test",
26 },
27 {
28 decorator: decor.Name("Test", decor.WC{W: 10, C: decor.DidentRight}),
29 want: "Test ",
30 },
31 }
32
33 for _, test := range tests {
34 got := test.decorator.Decor(new(decor.Statistics))
35 if got != test.want {
36 t.Errorf("Want: %q, Got: %q\n", test.want, got)
37 }
38 }
39 }
40
41 type step struct {
42 stat *decor.Statistics
43 decorator decor.Decorator
44 want string
45 }
46
47 func TestPercentageDwidthSync(t *testing.T) {
48
49 testCases := [][]step{
50 []step{
51 {
52 &decor.Statistics{Total: 100, Current: 8},
53 decor.Percentage(decor.WCSyncWidth),
54 "8 %",
55 },
56 {
57 &decor.Statistics{Total: 100, Current: 9},
58 decor.Percentage(decor.WCSyncWidth),
59 "9 %",
60 },
61 },
62 []step{
63 {
64 &decor.Statistics{Total: 100, Current: 9},
65 decor.Percentage(decor.WCSyncWidth),
66 " 9 %",
67 },
68 {
69 &decor.Statistics{Total: 100, Current: 10},
70 decor.Percentage(decor.WCSyncWidth),
71 "10 %",
72 },
73 },
74 []step{
75 {
76 &decor.Statistics{Total: 100, Current: 9},
77 decor.Percentage(decor.WCSyncWidth),
78 " 9 %",
79 },
80 {
81 &decor.Statistics{Total: 100, Current: 100},
82 decor.Percentage(decor.WCSyncWidth),
83 "100 %",
84 },
85 },
86 }
87
88 testDecoratorConcurrently(t, testCases)
89 }
90
91 func TestPercentageDwidthSyncDidentRight(t *testing.T) {
92
93 testCases := [][]step{
94 []step{
95 {
96 &decor.Statistics{Total: 100, Current: 8},
97 decor.Percentage(decor.WCSyncWidthR),
98 "8 %",
99 },
100 {
101 &decor.Statistics{Total: 100, Current: 9},
102 decor.Percentage(decor.WCSyncWidthR),
103 "9 %",
104 },
105 },
106 []step{
107 {
108 &decor.Statistics{Total: 100, Current: 9},
109 decor.Percentage(decor.WCSyncWidthR),
110 "9 % ",
111 },
112 {
113 &decor.Statistics{Total: 100, Current: 10},
114 decor.Percentage(decor.WCSyncWidthR),
115 "10 %",
116 },
117 },
118 []step{
119 {
120 &decor.Statistics{Total: 100, Current: 9},
121 decor.Percentage(decor.WCSyncWidthR),
122 "9 % ",
123 },
124 {
125 &decor.Statistics{Total: 100, Current: 100},
126 decor.Percentage(decor.WCSyncWidthR),
127 "100 %",
128 },
129 },
130 }
131
132 testDecoratorConcurrently(t, testCases)
133 }
134
135 func TestPercentageDSyncSpace(t *testing.T) {
136
137 testCases := [][]step{
138 []step{
139 {
140 &decor.Statistics{Total: 100, Current: 8},
141 decor.Percentage(decor.WCSyncSpace),
142 " 8 %",
143 },
144 {
145 &decor.Statistics{Total: 100, Current: 9},
146 decor.Percentage(decor.WCSyncSpace),
147 " 9 %",
148 },
149 },
150 []step{
151 {
152 &decor.Statistics{Total: 100, Current: 9},
153 decor.Percentage(decor.WCSyncSpace),
154 " 9 %",
155 },
156 {
157 &decor.Statistics{Total: 100, Current: 10},
158 decor.Percentage(decor.WCSyncSpace),
159 " 10 %",
160 },
161 },
162 []step{
163 {
164 &decor.Statistics{Total: 100, Current: 9},
165 decor.Percentage(decor.WCSyncSpace),
166 " 9 %",
167 },
168 {
169 &decor.Statistics{Total: 100, Current: 100},
170 decor.Percentage(decor.WCSyncSpace),
171 " 100 %",
172 },
173 },
174 }
175
176 testDecoratorConcurrently(t, testCases)
177 }
178
179 func testDecoratorConcurrently(t *testing.T, testCases [][]step) {
180 if len(testCases) == 0 {
181 t.Fail()
182 }
183
184 numBars := len(testCases[0])
185 var wg sync.WaitGroup
186 for _, columnCase := range testCases {
187 wg.Add(numBars)
188 SyncWidth(toSyncMatrix(columnCase))
189 gott := make([]chan string, numBars)
190 for i := 0; i < numBars; i++ {
191 gott[i] = make(chan string, 1)
192 go func(s step, ch chan string) {
193 defer wg.Done()
194 ch <- s.decorator.Decor(s.stat)
195 }(columnCase[i], gott[i])
196 }
197 wg.Wait()
198
199 for i, ch := range gott {
200 got := <-ch
201 want := columnCase[i].want
202 if got != want {
203 t.Errorf("Want: %q, Got: %q\n", want, got)
204 }
205 }
206
207 }
208 }
209
210 func toSyncMatrix(ss []step) map[int][]chan int {
211 var column []chan int
212 for _, s := range ss {
213 if ok, ch := s.decorator.Syncable(); ok {
214 column = append(column, ch)
215 }
216 }
217 return map[int][]chan int{0: column}
218 }
0 // Copyright (C) 2016-2018 Vladimir Bauer
1 // Use of this source code is governed by a BSD-style
2 // license that can be found in the LICENSE file.
3
4 // Package mpb is a library for rendering progress bars in terminal applications.
5 package mpb
0 package mpb
1
2 import (
3 "bytes"
4 "testing"
5 "unicode/utf8"
6 )
7
8 func TestDraw(t *testing.T) {
9 // key is termWidth
10 testSuite := map[int][]struct {
11 name string
12 total, current int64
13 barWidth int
14 trimSpace bool
15 rup int64
16 want string
17 }{
18 2: {
19 {
20 name: "t,c,bw{60,20,80}",
21 total: 60,
22 current: 20,
23 barWidth: 80,
24 want: " ",
25 },
26 {
27 name: "t,c,bw,trim{60,20,80,true}",
28 total: 60,
29 current: 20,
30 barWidth: 80,
31 trimSpace: true,
32 want: "",
33 },
34 },
35 3: {
36 {
37 name: "t,c,bw{60,20,80}",
38 total: 60,
39 current: 20,
40 barWidth: 80,
41 want: " ",
42 },
43 {
44 name: "t,c,bw,trim{60,20,80,true}",
45 total: 60,
46 current: 20,
47 barWidth: 80,
48 trimSpace: true,
49 want: "",
50 },
51 },
52 4: {
53 {
54 name: "t,c,bw{60,20,80}",
55 total: 60,
56 current: 20,
57 barWidth: 80,
58 want: " ",
59 },
60 {
61 name: "t,c,bw,trim{60,20,80,true}",
62 total: 60,
63 current: 20,
64 barWidth: 80,
65 trimSpace: true,
66 want: "[]",
67 },
68 },
69 5: {
70 {
71 name: "t,c,bw{60,20,80}",
72 total: 60,
73 current: 20,
74 barWidth: 80,
75 want: " ",
76 },
77 {
78 name: "t,c,bw,trim{60,20,80,true}",
79 total: 60,
80 current: 20,
81 barWidth: 80,
82 trimSpace: true,
83 want: "[>--]",
84 },
85 },
86 6: {
87 {
88 name: "t,c,bw{60,20,80}",
89 total: 60,
90 current: 20,
91 barWidth: 80,
92 want: " [] ",
93 },
94 {
95 name: "t,c,bw,trim{60,20,80,true}",
96 total: 60,
97 current: 20,
98 barWidth: 80,
99 trimSpace: true,
100 want: "[>---]",
101 },
102 },
103 7: {
104 {
105 name: "t,c,bw{60,20,80}",
106 total: 60,
107 current: 20,
108 barWidth: 80,
109 want: " [>--] ",
110 },
111 {
112 name: "t,c,bw,trim{60,20,80,true}",
113 total: 60,
114 current: 20,
115 barWidth: 80,
116 trimSpace: true,
117 want: "[=>---]",
118 },
119 },
120 8: {
121 {
122 name: "t,c,bw{60,20,80}",
123 total: 60,
124 current: 20,
125 barWidth: 80,
126 want: " [>---] ",
127 },
128 {
129 name: "t,c,bw,trim{60,20,80,true}",
130 total: 60,
131 current: 20,
132 barWidth: 80,
133 trimSpace: true,
134 want: "[=>----]",
135 },
136 },
137 80: {
138 {
139 name: "t,c,bw{60,20,80}",
140 total: 60,
141 current: 20,
142 barWidth: 80,
143 want: " [========================>---------------------------------------------------] ",
144 },
145 {
146 name: "t,c,bw,trim{60,20,80,true}",
147 total: 60,
148 current: 20,
149 barWidth: 80,
150 trimSpace: true,
151 want: "[=========================>----------------------------------------------------]",
152 },
153 },
154 100: {
155 {
156 name: "t,c,bw{100,100,0}",
157 total: 100,
158 current: 0,
159 barWidth: 100,
160 want: " [------------------------------------------------------------------------------------------------] ",
161 },
162 {
163 name: "t,c,bw,trim{100,100,0,true}",
164 total: 100,
165 current: 0,
166 barWidth: 100,
167 trimSpace: true,
168 want: "[--------------------------------------------------------------------------------------------------]",
169 },
170 {
171 name: "t,c,bw{100,1,100}",
172 total: 100,
173 current: 1,
174 barWidth: 100,
175 want: " [>-----------------------------------------------------------------------------------------------] ",
176 },
177 {
178 name: "t,c,bw,trim{100,1,100,true}",
179 total: 100,
180 current: 1,
181 barWidth: 100,
182 trimSpace: true,
183 want: "[>-------------------------------------------------------------------------------------------------]",
184 },
185 {
186 name: "t,c,bw{100,33,100}",
187 total: 100,
188 current: 33,
189 barWidth: 100,
190 want: " [===============================>----------------------------------------------------------------] ",
191 },
192 {
193 name: "t,c,bw,trim{100,33,100,true}",
194 total: 100,
195 current: 33,
196 barWidth: 100,
197 trimSpace: true,
198 want: "[===============================>------------------------------------------------------------------]",
199 },
200 {
201 name: "t,c,bw,rup{100,33,100,33}",
202 total: 100,
203 current: 33,
204 barWidth: 100,
205 rup: 33,
206 want: " [+++++++++++++++++++++++++++++++>----------------------------------------------------------------] ",
207 },
208 {
209 name: "t,c,bw,rup,trim{100,33,100,33,true}",
210 total: 100,
211 current: 33,
212 barWidth: 100,
213 rup: 33,
214 trimSpace: true,
215 want: "[+++++++++++++++++++++++++++++++>------------------------------------------------------------------]",
216 },
217 {
218 name: "t,c,bw,rup{100,40,100,32}",
219 total: 100,
220 current: 40,
221 barWidth: 100,
222 rup: 33,
223 want: " [++++++++++++++++++++++++++++++++=====>----------------------------------------------------------] ",
224 },
225 {
226 name: "t,c,bw,rup,trim{100,40,100,32,true}",
227 total: 100,
228 current: 40,
229 barWidth: 100,
230 rup: 33,
231 trimSpace: true,
232 want: "[++++++++++++++++++++++++++++++++======>-----------------------------------------------------------]",
233 },
234 {
235 name: "t,c,bw{100,99,100}",
236 total: 100,
237 current: 99,
238 barWidth: 100,
239 want: " [==============================================================================================>-] ",
240 },
241 {
242 name: "t,c,bw,trim{100,99,100,true}",
243 total: 100,
244 current: 99,
245 barWidth: 100,
246 trimSpace: true,
247 want: "[================================================================================================>-]",
248 },
249 {
250 name: "t,c,bw{100,100,100}",
251 total: 100,
252 current: 100,
253 barWidth: 100,
254 want: " [================================================================================================] ",
255 },
256 {
257 name: "t,c,bw,trim{100,100,100,true}",
258 total: 100,
259 current: 100,
260 barWidth: 100,
261 trimSpace: true,
262 want: "[==================================================================================================]",
263 },
264 },
265 }
266
267 var tmpBuf bytes.Buffer
268 for termWidth, cases := range testSuite {
269 for _, tc := range cases {
270 s := newTestState()
271 s.width = tc.barWidth
272 s.total = tc.total
273 s.current = tc.current
274 s.trimSpace = tc.trimSpace
275 if tc.rup > 0 {
276 if f, ok := s.filler.(interface{ SetRefill(int64) }); ok {
277 f.SetRefill(tc.rup)
278 }
279 }
280 tmpBuf.Reset()
281 tmpBuf.ReadFrom(s.draw(termWidth))
282 by := tmpBuf.Bytes()
283 by = by[:len(by)-1]
284
285 if utf8.RuneCount(by) > termWidth {
286 t.Errorf("termWidth:%d %q barWidth:%d overflow termWidth\n", termWidth, tc.name, utf8.RuneCount(by))
287 }
288
289 got := string(by)
290 if got != tc.want {
291 t.Errorf("termWidth:%d %q want: %q %d, got: %q %d\n", termWidth, tc.name, tc.want, len(tc.want), got, len(got))
292 }
293 }
294 }
295 }
296
297 func newTestState() *bState {
298 s := &bState{
299 filler: newDefaultBarFiller(),
300 bufP: new(bytes.Buffer),
301 bufB: new(bytes.Buffer),
302 bufA: new(bytes.Buffer),
303 }
304 return s
305 }
0 package mpb_test
1
2 import (
3 "io"
4 "io/ioutil"
5 "math/rand"
6 "net/http"
7 "time"
8
9 "github.com/vbauerster/mpb"
10 "github.com/vbauerster/mpb/decor"
11 )
12
13 func Example() {
14 p := mpb.New(
15 // override default (80) width
16 mpb.WithWidth(64),
17 // override default 120ms refresh rate
18 mpb.WithRefreshRate(180*time.Millisecond),
19 )
20
21 total := 100
22 name := "Single Bar:"
23 // adding a single bar
24 bar := p.AddBar(int64(total),
25 // override default "[=>-]" style
26 mpb.BarStyle("╢▌▌░╟"),
27 mpb.PrependDecorators(
28 // display our name with one space on the right
29 decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}),
30 // replace ETA decorator with "done" message, OnComplete event
31 decor.OnComplete(
32 // ETA decorator with ewma age of 60, and width reservation of 4
33 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WC{W: 4}), "done",
34 ),
35 ),
36 mpb.AppendDecorators(decor.Percentage()),
37 )
38 // simulating some work
39 max := 100 * time.Millisecond
40 for i := 0; i < total; i++ {
41 start := time.Now()
42 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
43 // ewma based decorators require work duration measurement
44 bar.IncrBy(1, time.Since(start))
45 }
46 // wait for our bar to complete and flush
47 p.Wait()
48 }
49
50 func ExampleBar_Completed() {
51 p := mpb.New()
52 bar := p.AddBar(100)
53
54 max := 100 * time.Millisecond
55 for !bar.Completed() {
56 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
57 bar.Increment()
58 }
59
60 p.Wait()
61 }
62
63 func ExampleBar_ProxyReader() {
64 p := mpb.New()
65 // make http get request, ignoring errors
66 resp, _ := http.Get("https://homebrew.bintray.com/bottles/libtiff-4.0.7.sierra.bottle.tar.gz")
67 defer resp.Body.Close()
68
69 // Assuming ContentLength > 0
70 bar := p.AddBar(resp.ContentLength,
71 mpb.AppendDecorators(
72 decor.CountersKibiByte("%6.1f / %6.1f"),
73 ),
74 )
75
76 // create proxy reader
77 reader := bar.ProxyReader(resp.Body)
78
79 // and copy from reader, ignoring errors
80 io.Copy(ioutil.Discard, reader)
81
82 p.Wait()
83 }
0 package main
1
2 import (
3 "fmt"
4 "io"
5 "math/rand"
6 "sync"
7 "time"
8
9 "github.com/vbauerster/mpb"
10 "github.com/vbauerster/mpb/decor"
11 )
12
13 func init() {
14 rand.Seed(time.Now().UnixNano())
15 }
16
17 func main() {
18 var wg sync.WaitGroup
19 p := mpb.New(mpb.WithWaitGroup(&wg))
20 total, numBars := 100, 3
21 wg.Add(numBars)
22
23 for i := 0; i < numBars; i++ {
24 name := fmt.Sprintf("Bar#%d:", i)
25 efn := func(w io.Writer, s *decor.Statistics) {
26 if s.Completed {
27 fmt.Fprintf(w, "Bar id: %d has been completed\n", s.ID)
28 }
29 }
30 bar := p.AddBar(int64(total), mpb.BarNewLineExtend(efn),
31 mpb.PrependDecorators(
32 // simple name decorator
33 decor.Name(name),
34 // decor.DSyncWidth bit enables column width synchronization
35 decor.Percentage(decor.WCSyncSpace),
36 ),
37 mpb.AppendDecorators(
38 // replace ETA decorator with "done" message, OnComplete event
39 decor.OnComplete(
40 // ETA decorator with ewma age of 60
41 decor.EwmaETA(decor.ET_STYLE_GO, 60), "done",
42 ),
43 ),
44 )
45 // simulating some work
46 go func() {
47 defer wg.Done()
48 max := 100 * time.Millisecond
49 for i := 0; i < total; i++ {
50 start := time.Now()
51 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
52 // ewma based decorators require work duration measurement
53 bar.IncrBy(1, time.Since(start))
54 }
55 }()
56 }
57 // wait for all bars to complete and flush
58 p.Wait()
59 }
0 package main
1
2 import (
3 "context"
4 "fmt"
5 "math/rand"
6 "sync"
7 "time"
8
9 "github.com/vbauerster/mpb"
10 "github.com/vbauerster/mpb/decor"
11 )
12
13 func init() {
14 rand.Seed(time.Now().UnixNano())
15 }
16
17 func main() {
18 ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
19 defer cancel()
20
21 var wg sync.WaitGroup
22 p := mpb.New(
23 mpb.WithWaitGroup(&wg),
24 mpb.WithContext(ctx),
25 )
26 total := 300
27 numBars := 3
28 wg.Add(numBars)
29
30 for i := 0; i < numBars; i++ {
31 name := fmt.Sprintf("Bar#%d:", i)
32 bar := p.AddBar(int64(total),
33 mpb.PrependDecorators(
34 decor.Name(name),
35 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WCSyncSpace),
36 ),
37 mpb.AppendDecorators(
38 decor.Percentage(decor.WC{W: 5}),
39 ),
40 )
41
42 go func() {
43 defer wg.Done()
44 max := 100 * time.Millisecond
45 for !bar.Completed() {
46 start := time.Now()
47 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
48 // ewma based decorators require work duration measurement
49 bar.IncrBy(1, time.Since(start))
50 }
51 }()
52 }
53
54 p.Wait()
55 }
0 package main
1
2 import (
3 "fmt"
4 "math/rand"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 func init() {
13 rand.Seed(time.Now().UnixNano())
14 }
15
16 func main() {
17 doneWg := new(sync.WaitGroup)
18 p := mpb.New(mpb.WithWidth(64), mpb.WithWaitGroup(doneWg))
19 numBars := 4
20
21 var bars []*mpb.Bar
22 var downloadWgg []*sync.WaitGroup
23 for i := 0; i < numBars; i++ {
24 wg := new(sync.WaitGroup)
25 wg.Add(1)
26 downloadWgg = append(downloadWgg, wg)
27 task := fmt.Sprintf("Task#%02d:", i)
28 job := "downloading"
29 b := p.AddBar(rand.Int63n(201)+100,
30 mpb.BarRemoveOnComplete(),
31 mpb.PrependDecorators(
32 decor.Name(task, decor.WC{W: len(task) + 1, C: decor.DidentRight}),
33 decor.Name(job, decor.WCSyncSpaceR),
34 decor.CountersNoUnit("%d / %d", decor.WCSyncWidth),
35 ),
36 mpb.AppendDecorators(decor.Percentage(decor.WC{W: 5})),
37 )
38 go newTask(wg, b, i+1)
39 bars = append(bars, b)
40 }
41
42 for i := 0; i < numBars; i++ {
43 doneWg.Add(1)
44 i := i
45 go func() {
46 task := fmt.Sprintf("Task#%02d:", i)
47 job := "installing"
48 // preparing delayed bars
49 b := p.AddBar(rand.Int63n(101)+100,
50 mpb.BarReplaceOnComplete(bars[i]),
51 mpb.BarClearOnComplete(),
52 mpb.PrependDecorators(
53 decor.Name(task, decor.WC{W: len(task) + 1, C: decor.DidentRight}),
54 decor.OnComplete(decor.Name(job, decor.WCSyncSpaceR), "done!"),
55 decor.OnComplete(decor.EwmaETA(decor.ET_STYLE_MMSS, 60, decor.WCSyncWidth), "")),
56 mpb.AppendDecorators(
57 decor.OnComplete(decor.Percentage(decor.WC{W: 5}), ""),
58 ),
59 )
60 // waiting for download to complete, before starting install job
61 downloadWgg[i].Wait()
62 go newTask(doneWg, b, numBars-i)
63 }()
64 }
65
66 p.Wait()
67 }
68
69 func newTask(wg *sync.WaitGroup, b *mpb.Bar, incrBy int) {
70 defer wg.Done()
71 max := 100 * time.Millisecond
72 for !b.Completed() {
73 start := time.Now()
74 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
75 // ewma based decorators require work duration measurement
76 b.IncrBy(incrBy, time.Since(start))
77 }
78 }
0 package main
1
2 import (
3 "fmt"
4 "math/rand"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 func init() {
13 rand.Seed(time.Now().UnixNano())
14 }
15
16 func main() {
17 var wg sync.WaitGroup
18 p := mpb.New(
19 mpb.WithWaitGroup(&wg),
20 // container's width.
21 mpb.WithWidth(60),
22 )
23 total, numBars := 100, 3
24 wg.Add(numBars)
25
26 for i := 0; i < numBars; i++ {
27 name := fmt.Sprintf("Bar#%d:", i)
28 bar := p.AddBar(int64(total),
29 // set BarWidth 40 for bar 1 and 2
30 mpb.OptionOnCondition(mpb.BarWidth(40), func() bool { return i > 0 }),
31 mpb.PrependDecorators(
32 // simple name decorator
33 decor.Name(name),
34 // decor.DSyncWidth bit enables column width synchronization
35 decor.Percentage(decor.WCSyncSpace),
36 ),
37 mpb.AppendDecorators(
38 // replace ETA decorator with "done" message, OnComplete event
39 decor.OnComplete(
40 // ETA decorator with ewma age of 60
41 decor.EwmaETA(decor.ET_STYLE_GO, 60), "done",
42 ),
43 ),
44 )
45 // simulating some work
46 go func() {
47 defer wg.Done()
48 max := 100 * time.Millisecond
49 for i := 0; i < total; i++ {
50 start := time.Now()
51 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
52 // ewma based decorators require work duration measurement
53 bar.IncrBy(1, time.Since(start))
54 }
55 }()
56 }
57 // wait for all bars to complete and flush
58 p.Wait()
59 }
0 package main
1
2 import (
3 "io"
4 "math/rand"
5 "time"
6
7 "github.com/vbauerster/mpb"
8 "github.com/vbauerster/mpb/decor"
9 )
10
11 func init() {
12 rand.Seed(time.Now().UnixNano())
13 }
14
15 func main() {
16 p := mpb.New(mpb.WithWidth(64))
17
18 var total int64
19 bar := p.AddBar(total,
20 mpb.PrependDecorators(decor.Counters(decor.UnitKiB, "% .1f / % .1f")),
21 mpb.AppendDecorators(decor.Percentage()),
22 )
23
24 maxSleep := 100 * time.Millisecond
25 read := makeStream(200)
26 for {
27 n, err := read()
28 total += int64(n)
29 time.Sleep(time.Duration(rand.Intn(10)+1) * maxSleep / 10)
30 bar.IncrBy(n)
31 if err == io.EOF {
32 // total is known, final=true
33 bar.SetTotal(total, true)
34 break
35 }
36 // total is unknown, final=false
37 bar.SetTotal(total+2048, false)
38 }
39
40 p.Wait()
41 }
42
43 func makeStream(limit int) func() (int, error) {
44 return func() (int, error) {
45 if limit <= 0 {
46 return 0, io.EOF
47 }
48 limit--
49 return rand.Intn(1024) + 1, nil
50 }
51 }
0 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1020" height="130.26"><rect width="1020" height="130.26" rx="0" ry="0" class="a"/><svg height="130.26" viewBox="0 0 102 13.026" width="1020" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style>@keyframes n{0%{transform:translateX(0)}2.4%{transform:translateX(-408px)}2.5%{transform:translateX(-612px)}2.7%{transform:translateX(-714px)}2.8%{transform:translateX(-918px)}5.7%{transform:translateX(-1020px)}6.4%{transform:translateX(-1122px)}7.2%{transform:translateX(-1224px)}8.3%{transform:translateX(-1326px)}9.5%{transform:translateX(-1428px)}10%{transform:translateX(-1530px)}12.6%{transform:translateX(-1734px)}14.4%{transform:translateX(-1938px)}14.5%{transform:translateX(-2244px)}17.4%{transform:translateX(-2346px)}18.1%{transform:translateX(-2448px)}18.9%{transform:translateX(-2550px)}19.6%{transform:translateX(-2652px)}20.3%{transform:translateX(-2754px)}21.1%{transform:translateX(-2856px)}21.8%{transform:translateX(-2958px)}22.6%{transform:translateX(-3060px)}23.3%{transform:translateX(-3162px)}24%{transform:translateX(-3264px)}24.8%{transform:translateX(-3366px)}25.5%{transform:translateX(-3468px)}26.2%{transform:translateX(-3570px)}27%{transform:translateX(-3672px)}27.7%{transform:translateX(-3774px)}28.4%{transform:translateX(-3876px)}29.2%{transform:translateX(-3978px)}29.9%{transform:translateX(-4080px)}30.6%{transform:translateX(-4182px)}31.4%{transform:translateX(-4284px)}32.1%{transform:translateX(-4386px)}32.9%{transform:translateX(-4488px)}33.6%{transform:translateX(-4590px)}34.4%{transform:translateX(-4692px)}35.1%{transform:translateX(-4794px)}35.8%{transform:translateX(-4896px)}36.5%{transform:translateX(-4998px)}37.3%{transform:translateX(-5100px)}38%{transform:translateX(-5202px)}38.8%{transform:translateX(-5304px)}39.5%{transform:translateX(-5406px)}40.2%{transform:translateX(-5508px)}41%{transform:translateX(-5610px)}41.7%{transform:translateX(-5712px)}42.4%{transform:translateX(-5814px)}43.2%{transform:translateX(-5916px)}43.9%{transform:translateX(-6018px)}44.6%{transform:translateX(-6120px)}45.4%{transform:translateX(-6222px)}46.1%{transform:translateX(-6324px)}46.8%{transform:translateX(-6426px)}47.6%{transform:translateX(-6528px)}48.3%{transform:translateX(-6630px)}49.1%{transform:translateX(-6732px)}49.8%{transform:translateX(-6834px)}50.5%{transform:translateX(-6936px)}51.3%{transform:translateX(-7038px)}52%{transform:translateX(-7140px)}52.7%{transform:translateX(-7242px)}53.5%{transform:translateX(-7344px)}54.2%{transform:translateX(-7446px)}55%{transform:translateX(-7548px)}55.7%{transform:translateX(-7650px)}56.4%{transform:translateX(-7752px)}57.2%{transform:translateX(-7854px)}57.9%{transform:translateX(-7956px)}58.6%{transform:translateX(-8058px)}59.4%{transform:translateX(-8160px)}60.1%{transform:translateX(-8262px)}60.8%{transform:translateX(-8364px)}61.5%{transform:translateX(-8466px)}62.3%{transform:translateX(-8568px)}63%{transform:translateX(-8670px)}63.8%{transform:translateX(-8772px)}64.5%{transform:translateX(-8874px)}65.2%{transform:translateX(-8976px)}66%{transform:translateX(-9078px)}66.7%{transform:translateX(-9180px)}67.5%{transform:translateX(-9282px)}68.2%{transform:translateX(-9384px)}68.9%{transform:translateX(-9486px)}69.7%{transform:translateX(-9588px)}70.4%{transform:translateX(-9690px)}71.1%{transform:translateX(-9792px)}71.9%{transform:translateX(-9894px)}72.6%{transform:translateX(-9996px)}73.3%{transform:translateX(-10098px)}74.1%{transform:translateX(-10200px)}74.8%{transform:translateX(-10302px)}75.5%{transform:translateX(-10404px)}76.3%{transform:translateX(-10506px)}77%{transform:translateX(-10608px)}77.8%{transform:translateX(-10710px)}78.5%{transform:translateX(-10812px)}79.2%{transform:translateX(-10914px)}79.9%{transform:translateX(-11016px)}80.7%{transform:translateX(-11118px)}81.4%{transform:translateX(-11220px)}82.2%{transform:translateX(-11322px)}82.9%{transform:translateX(-11424px)}83.6%{transform:translateX(-11526px)}84.4%{transform:translateX(-11628px)}85.1%{transform:translateX(-11730px)}85.9%{transform:translateX(-11832px)}86.6%{transform:translateX(-11934px)}87.3%{transform:translateX(-12036px)}88%{transform:translateX(-12138px)}95%{transform:translateX(-12342px)}95.3%{transform:translateX(-12750px)}to{transform:translateX(-12852px)}}.a{fill:#f8f8f8}.c{fill:#4f97d7}.d{fill:#a31db1}.e{fill:#6c6c6c}.f{fill:#2d9574}.g{fill:#67b11d}.h{fill:#afafaf}.i{fill:#444155}</style><g font-size="1.67" font-family="Monaco,Consolas,Menlo,'Bitstream Vera Sans Mono','Powerline Symbols',monospace"><defs><symbol id="1"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/dynTotal</text></symbol><symbol id="2"><text y="1.67" class="d">❯</text></symbol><symbol id="3"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/dynTotal</text><text x="53.106" y="1.67" class="e">master*</text><text x="61.122" y="1.67" class="f">⇡</text></symbol><symbol id="4"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="g">go</text><text x="5.01" y="1.67" class="h">run</text><text x="9.018" y="1.67" class="h">-race</text><text x="15.03" y="1.67" class="h">main.go</text></symbol><symbol id="5"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="g">go</text><text x="5.01" y="1.67" class="i">run</text><path fill="#b9c0cb" d="M8.016 0h1v2.171h-1z"/><text x="8.016" y="1.67" class="a"></text><text x="9.018" y="1.67" class="i">-race</text><text x="15.03" y="1.67" class="i">main.go</text></symbol><symbol id="6"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="g">go</text><text x="5.01" y="1.67" class="i">run</text><text x="9.018" y="1.67" class="i">-race</text><text x="15.03" y="1.67" fill="#444155" text-decoration="underline">main.go</text></symbol><symbol id="7"><text y="1.67" class="i">55.7</text><text x="5.01" y="1.67" class="i">KiB</text><text x="9.018" y="1.67" class="i">/</text><text x="11.022" y="1.67" class="i">56.7</text><text x="16.032" y="1.67" class="i">KiB</text><text x="20.04" y="1.67" class="i">[============================================================&gt;-]</text><text x="85.17" y="1.67" class="i">98</text><text x="88.176" y="1.67" class="i">%</text></symbol><symbol id="8"><text y="1.67" class="i">100.7</text><text x="6.012" y="1.67" class="i">KiB</text><text x="10.02" y="1.67" class="i">/</text><text x="12.024" y="1.67" class="i">100.7</text><text x="18.036" y="1.67" class="i">KiB</text><text x="22.044" y="1.67" class="i">[==============================================================]</text><text x="87.174" y="1.67" class="i">100</text><text x="91.182" y="1.67" class="i">%</text></symbol><symbol id="9"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/dynTotal</text><text x="53.106" y="1.67" class="e">master*</text><text x="61.122" y="1.67" class="f">⇡</text><text x="63.126" y="1.67" fill="#b1951d">13s</text></symbol><symbol id="a"><path fill="transparent" d="M0 0h102v7H0z"/></symbol><symbol id="b"><path class="i" d="M0 0h1.102v2.171H0z"/></symbol></defs><path class="a" d="M0 0h102v13.026H0z"/><g style="animation-duration:16.308492s;animation-iteration-count:infinite;animation-name:n;animation-timing-function:steps(1,end)"><svg width="12954"><svg><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="102"><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="204"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="2.146"/></svg><svg x="306"><use xlink:href="#a"/><use xlink:href="#b" x=".996" y="4.317"/><use xlink:href="#1" y="2.171"/></svg><svg x="408"><use xlink:href="#a"/><use xlink:href="#b" x=".996" y="4.317"/><use xlink:href="#1" y="2.171"/></svg><svg x="510"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#1" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="612"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#1" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="714"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><text y="3.841" class="c">~/go/src/github.com/vbauerster/mpb/examples/dynTotal</text><text x="53.106" y="3.841" class="e">master</text><use xlink:href="#2" y="4.342"/></svg><svg x="816"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><text y="3.841" class="c">~/go/src/github.com/vbauerster/mpb/examples/dynTotal</text><text x="53.106" y="3.841" class="e">master</text><text x="60.12" y="3.841" class="f">⇡</text><use xlink:href="#2" y="4.342"/></svg><svg x="918"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="1020"><use xlink:href="#a"/><use xlink:href="#b" x="2.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="g">g</text><text x="3.006" y="6.012" class="h">o</text><text x="5.01" y="6.012" class="h">run</text><text x="9.018" y="6.012" class="h">-race</text><text x="15.03" y="6.012" class="h">main.go</text></svg><svg x="1122"><use xlink:href="#a"/><use xlink:href="#b" x="3.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/></svg><svg x="1224"><use xlink:href="#a"/><use xlink:href="#b" x="4.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/></svg><svg x="1326"><use xlink:href="#a"/><use xlink:href="#b" x="5.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="g">go</text><text x="5.01" y="6.012" class="i">r</text><text x="6.012" y="6.012" class="h">un</text><text x="9.018" y="6.012" class="h">-race</text><text x="15.03" y="6.012" class="h">main.go</text></svg><svg x="1428"><use xlink:href="#a"/><use xlink:href="#b" x="6.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="g">go</text><text x="5.01" y="6.012" class="i">ru</text><text x="7.014" y="6.012" class="h">n</text><text x="9.018" y="6.012" class="h">-race</text><text x="15.03" y="6.012" class="h">main.go</text></svg><svg x="1530"><use xlink:href="#a"/><use xlink:href="#b" x="7.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="g">go</text><text x="5.01" y="6.012" class="i">run</text><text x="9.018" y="6.012" class="h">-race</text><text x="15.03" y="6.012" class="h">main.go</text></svg><svg x="1632"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#5" y="4.342"/></svg><svg x="1734"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#5" y="4.342"/></svg><svg x="1836"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="1938"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2040"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2142"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="6.488"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2244"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="6.488"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2346"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">519</text><text x="4.008" y="8.183" class="i">b</text><text x="6.012" y="8.183" class="i">/</text><text x="8.016" y="8.183" class="i">1.5</text><text x="12.024" y="8.183" class="i">KiB</text><text x="16.032" y="8.183" class="i">[====================&gt;-----------------------------------------]</text><text x="81.162" y="8.183" class="i">34</text><text x="84.168" y="8.183" class="i">%</text></svg><svg x="2448"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">2.2</text><text x="4.008" y="8.183" class="i">KiB</text><text x="8.016" y="8.183" class="i">/</text><text x="10.02" y="8.183" class="i">3.2</text><text x="14.028" y="8.183" class="i">KiB</text><text x="18.036" y="8.183" class="i">[==========================================&gt;-------------------]</text><text x="83.166" y="8.183" class="i">69</text><text x="86.172" y="8.183" class="i">%</text></svg><svg x="2550"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">2.5</text><text x="4.008" y="8.183" class="i">KiB</text><text x="8.016" y="8.183" class="i">/</text><text x="10.02" y="8.183" class="i">3.5</text><text x="14.028" y="8.183" class="i">KiB</text><text x="18.036" y="8.183" class="i">[===========================================&gt;------------------]</text><text x="83.166" y="8.183" class="i">72</text><text x="86.172" y="8.183" class="i">%</text></svg><svg x="2652"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">3.2</text><text x="4.008" y="8.183" class="i">KiB</text><text x="8.016" y="8.183" class="i">/</text><text x="10.02" y="8.183" class="i">4.2</text><text x="14.028" y="8.183" class="i">KiB</text><text x="18.036" y="8.183" class="i">[==============================================&gt;---------------]</text><text x="83.166" y="8.183" class="i">76</text><text x="86.172" y="8.183" class="i">%</text></svg><svg x="2754"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">3.6</text><text x="4.008" y="8.183" class="i">KiB</text><text x="8.016" y="8.183" class="i">/</text><text x="10.02" y="8.183" class="i">4.6</text><text x="14.028" y="8.183" class="i">KiB</text><text x="18.036" y="8.183" class="i">[================================================&gt;-------------]</text><text x="83.166" y="8.183" class="i">78</text><text x="86.172" y="8.183" class="i">%</text></svg><svg x="2856"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">6.5</text><text x="4.008" y="8.183" class="i">KiB</text><text x="8.016" y="8.183" class="i">/</text><text x="10.02" y="8.183" class="i">7.5</text><text x="14.028" y="8.183" class="i">KiB</text><text x="18.036" y="8.183" class="i">[=====================================================&gt;--------]</text><text x="83.166" y="8.183" class="i">87</text><text x="86.172" y="8.183" class="i">%</text></svg><svg x="2958"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">8.0</text><text x="4.008" y="8.183" class="i">KiB</text><text x="8.016" y="8.183" class="i">/</text><text x="10.02" y="8.183" class="i">9.0</text><text x="14.028" y="8.183" class="i">KiB</text><text x="18.036" y="8.183" class="i">[======================================================&gt;-------]</text><text x="83.166" y="8.183" class="i">89</text><text x="86.172" y="8.183" class="i">%</text></svg><svg x="3060"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">10.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">11.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[========================================================&gt;-----]</text><text x="85.17" y="8.183" class="i">91</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3162"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">12.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">13.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[========================================================&gt;-----]</text><text x="85.17" y="8.183" class="i">92</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3264"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">13.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">14.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[=========================================================&gt;----]</text><text x="85.17" y="8.183" class="i">93</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3366"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">13.2</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">14.2</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[=========================================================&gt;----]</text><text x="85.17" y="8.183" class="i">93</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3468"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">13.9</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">14.9</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[=========================================================&gt;----]</text><text x="85.17" y="8.183" class="i">93</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3570"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">15.5</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">16.5</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[=========================================================&gt;----]</text><text x="85.17" y="8.183" class="i">94</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3672"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">15.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">16.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[=========================================================&gt;----]</text><text x="85.17" y="8.183" class="i">94</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3774"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">17.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">18.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[==========================================================&gt;---]</text><text x="85.17" y="8.183" class="i">95</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3876"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">18.9</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">19.9</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[==========================================================&gt;---]</text><text x="85.17" y="8.183" class="i">95</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="3978"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">20.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">21.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[==========================================================&gt;---]</text><text x="85.17" y="8.183" class="i">95</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4080"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">21.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">22.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[==========================================================&gt;---]</text><text x="85.17" y="8.183" class="i">95</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4182"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">21.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">22.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[==========================================================&gt;---]</text><text x="85.17" y="8.183" class="i">96</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4284"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">22.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">23.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[==========================================================&gt;---]</text><text x="85.17" y="8.183" class="i">96</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4386"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">23.9</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">24.9</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">96</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4488"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">25.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">26.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">96</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4590"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">26.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">27.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">96</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4692"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">26.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">27.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">96</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4794"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">28.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">29.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4896"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">28.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">29.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="4998"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">29.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">30.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5100"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">30.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">31.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5202"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">30.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">31.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5304"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">31.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">32.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5406"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">34.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">35.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5508"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">34.5</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">35.5</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5610"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">37.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">38.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5712"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">38.5</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">39.5</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[===========================================================&gt;--]</text><text x="85.17" y="8.183" class="i">97</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5814"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">40.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">41.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="5916"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">41.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">42.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6018"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">42.2</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">43.2</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6120"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">43.9</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">44.9</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6222"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">44.9</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">45.9</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6324"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">46.2</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">47.2</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6426"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">46.9</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">47.9</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6528"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">48.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">49.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6630"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">48.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">49.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6732"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">49.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">50.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6834"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">50.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">51.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="6936"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">50.5</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">51.5</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7038"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">50.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">51.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7140"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">50.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">51.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7242"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">51.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">52.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7344"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">52.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">53.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7446"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">53.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">54.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7548"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/></svg><svg x="7650"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/></svg><svg x="7752"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">57.5</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">58.5</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7854"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">58.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">59.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="7956"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">58.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">59.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8058"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">60.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">61.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8160"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">62.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">63.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8262"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">63.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">64.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8364"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">64.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">65.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8466"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">65.2</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">66.2</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">98</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8568"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">65.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">66.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8670"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">66.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">67.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8772"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">67.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">68.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8874"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">68.5</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">69.5</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="8976"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">70.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">71.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9078"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">70.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">71.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9180"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">70.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">71.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9282"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">72.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">73.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9384"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">73.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">74.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9486"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">74.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">75.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9588"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">75.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">76.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9690"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">78.2</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">79.2</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9792"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">79.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">80.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9894"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">80.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">81.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="9996"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">81.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">82.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10098"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">82.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">83.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10200"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">82.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">83.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10302"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">84.0</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">85.0</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10404"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">84.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">85.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10506"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">85.9</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">86.9</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10608"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">87.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">88.7</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10710"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">88.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">89.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10812"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">90.3</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">91.3</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="10914"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">91.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">92.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11016"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">92.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">93.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11118"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">93.5</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">94.5</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11220"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">93.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">94.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11322"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">95.1</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">96.1</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11424"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">96.4</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">97.4</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11526"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">97.6</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">98.6</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11628"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">98.8</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">99.8</text><text x="16.032" y="8.183" class="i">KiB</text><text x="20.04" y="8.183" class="i">[============================================================&gt;-]</text><text x="85.17" y="8.183" class="i">99</text><text x="88.176" y="8.183" class="i">%</text></svg><svg x="11730"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">99.7</text><text x="5.01" y="8.183" class="i">KiB</text><text x="9.018" y="8.183" class="i">/</text><text x="11.022" y="8.183" class="i">100.7</text><text x="17.034" y="8.183" class="i">KiB</text><text x="21.042" y="8.183" class="i">[============================================================&gt;-]</text><text x="86.172" y="8.183" class="i">99</text><text x="89.178" y="8.183" class="i">%</text></svg><svg x="11832"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">100.6</text><text x="6.012" y="8.183" class="i">KiB</text><text x="10.02" y="8.183" class="i">/</text><text x="12.024" y="8.183" class="i">101.6</text><text x="18.036" y="8.183" class="i">KiB</text><text x="22.044" y="8.183" class="i">[============================================================&gt;-]</text><text x="87.174" y="8.183" class="i">99</text><text x="90.18" y="8.183" class="i">%</text></svg><svg x="11934"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="i">100.7</text><text x="6.012" y="8.183" class="i">KiB</text><text x="10.02" y="8.183" class="i">/</text><text x="12.024" y="8.183" class="i">101.7</text><text x="18.036" y="8.183" class="i">KiB</text><text x="22.044" y="8.183" class="i">[============================================================&gt;-]</text><text x="87.174" y="8.183" class="i">99</text><text x="90.18" y="8.183" class="i">%</text></svg><svg x="12036"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/></svg><svg x="12138"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/></svg><svg x="12240"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/></svg><svg x="12342"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="10.83"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/></svg><svg x="12444"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/><use xlink:href="#9" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="12546"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/><use xlink:href="#9" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="12648"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/><use xlink:href="#9" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="12750"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#8" y="6.513"/><use xlink:href="#9" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="12852"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="13.001"/><use xlink:href="#3"/><use xlink:href="#6" y="2.171"/><use xlink:href="#8" y="4.342"/><use xlink:href="#9" y="8.684"/><use xlink:href="#2" y="10.855"/></svg></svg></g></g></svg></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1020" height="130.26"><rect width="1020" height="130.26" rx="0" ry="0" class="a"/><svg height="130.26" viewBox="0 0 102 13.026" width="1020" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style>@keyframes m{0%{transform:translateX(0)}.7%{transform:translateX(-102px)}.71%{transform:translateX(-510px)}.72%{transform:translateX(-612px)}.79%{transform:translateX(-714px)}.84%{transform:translateX(-816px)}2.29%{transform:translateX(-918px)}2.55%{transform:translateX(-1020px)}2.91%{transform:translateX(-1122px)}3.85%{transform:translateX(-1224px)}4.22%{transform:translateX(-1326px)}4.37%{transform:translateX(-1428px)}5.29%{transform:translateX(-1632px)}5.91%{transform:translateX(-1836px)}5.92%{transform:translateX(-1938px)}5.94%{transform:translateX(-2142px)}10.72%{transform:translateX(-2244px)}11.08%{transform:translateX(-2346px)}11.44%{transform:translateX(-2448px)}11.79%{transform:translateX(-2550px)}12.15%{transform:translateX(-2652px)}12.52%{transform:translateX(-2754px)}12.87%{transform:translateX(-2856px)}13.22%{transform:translateX(-2958px)}13.58%{transform:translateX(-3060px)}13.94%{transform:translateX(-3162px)}14.29%{transform:translateX(-3264px)}14.65%{transform:translateX(-3366px)}15.01%{transform:translateX(-3468px)}15.36%{transform:translateX(-3570px)}15.72%{transform:translateX(-3672px)}16.08%{transform:translateX(-3774px)}16.44%{transform:translateX(-3876px)}16.8%{transform:translateX(-3978px)}17.15%{transform:translateX(-4080px)}17.51%{transform:translateX(-4182px)}17.87%{transform:translateX(-4284px)}18.23%{transform:translateX(-4386px)}18.59%{transform:translateX(-4488px)}18.94%{transform:translateX(-4590px)}19.3%{transform:translateX(-4692px)}19.66%{transform:translateX(-4794px)}20.01%{transform:translateX(-4896px)}20.38%{transform:translateX(-4998px)}20.73%{transform:translateX(-5100px)}21.09%{transform:translateX(-5202px)}21.45%{transform:translateX(-5304px)}21.8%{transform:translateX(-5406px)}22.16%{transform:translateX(-5508px)}22.52%{transform:translateX(-5610px)}22.87%{transform:translateX(-5712px)}23.23%{transform:translateX(-5814px)}23.59%{transform:translateX(-5916px)}23.95%{transform:translateX(-6018px)}24.31%{transform:translateX(-6120px)}24.66%{transform:translateX(-6222px)}25.02%{transform:translateX(-6324px)}25.38%{transform:translateX(-6426px)}25.74%{transform:translateX(-6528px)}26.09%{transform:translateX(-6630px)}26.45%{transform:translateX(-6732px)}26.81%{transform:translateX(-6834px)}27.17%{transform:translateX(-6936px)}27.52%{transform:translateX(-7038px)}27.88%{transform:translateX(-7140px)}28.24%{transform:translateX(-7242px)}28.59%{transform:translateX(-7344px)}28.95%{transform:translateX(-7446px)}29.31%{transform:translateX(-7548px)}29.67%{transform:translateX(-7650px)}30.02%{transform:translateX(-7752px)}30.39%{transform:translateX(-7854px)}30.74%{transform:translateX(-7956px)}31.1%{transform:translateX(-8058px)}31.46%{transform:translateX(-8160px)}31.81%{transform:translateX(-8262px)}32.17%{transform:translateX(-8364px)}32.52%{transform:translateX(-8466px)}32.88%{transform:translateX(-8568px)}33.25%{transform:translateX(-8670px)}33.6%{transform:translateX(-8772px)}33.96%{transform:translateX(-8874px)}34.31%{transform:translateX(-8976px)}34.68%{transform:translateX(-9078px)}35.03%{transform:translateX(-9180px)}35.39%{transform:translateX(-9282px)}35.75%{transform:translateX(-9384px)}36.11%{transform:translateX(-9486px)}36.46%{transform:translateX(-9588px)}36.81%{transform:translateX(-9690px)}37.18%{transform:translateX(-9792px)}37.53%{transform:translateX(-9894px)}37.89%{transform:translateX(-9996px)}38.25%{transform:translateX(-10098px)}38.6%{transform:translateX(-10200px)}38.96%{transform:translateX(-10302px)}39.32%{transform:translateX(-10404px)}39.68%{transform:translateX(-10506px)}40.03%{transform:translateX(-10608px)}40.39%{transform:translateX(-10710px)}40.75%{transform:translateX(-10812px)}41.1%{transform:translateX(-10914px)}41.46%{transform:translateX(-11016px)}41.82%{transform:translateX(-11118px)}42.18%{transform:translateX(-11220px)}42.53%{transform:translateX(-11322px)}42.9%{transform:translateX(-11424px)}43.25%{transform:translateX(-11526px)}43.61%{transform:translateX(-11628px)}43.97%{transform:translateX(-11730px)}44.33%{transform:translateX(-11832px)}44.69%{transform:translateX(-11934px)}45.04%{transform:translateX(-12036px)}45.4%{transform:translateX(-12138px)}45.76%{transform:translateX(-12240px)}46.11%{transform:translateX(-12342px)}46.47%{transform:translateX(-12444px)}46.82%{transform:translateX(-12546px)}47.19%{transform:translateX(-12648px)}47.54%{transform:translateX(-12750px)}47.9%{transform:translateX(-12852px)}48.25%{transform:translateX(-12954px)}48.62%{transform:translateX(-13056px)}48.98%{transform:translateX(-13158px)}49.33%{transform:translateX(-13260px)}49.69%{transform:translateX(-13362px)}50.05%{transform:translateX(-13464px)}50.4%{transform:translateX(-13566px)}50.76%{transform:translateX(-13668px)}51.11%{transform:translateX(-13770px)}51.48%{transform:translateX(-13872px)}51.83%{transform:translateX(-13974px)}52.19%{transform:translateX(-14076px)}52.54%{transform:translateX(-14178px)}52.91%{transform:translateX(-14280px)}53.26%{transform:translateX(-14382px)}53.62%{transform:translateX(-14484px)}53.97%{transform:translateX(-14586px)}54.33%{transform:translateX(-14688px)}54.69%{transform:translateX(-14790px)}55.05%{transform:translateX(-14892px)}55.4%{transform:translateX(-14994px)}55.76%{transform:translateX(-15096px)}56.12%{transform:translateX(-15198px)}56.48%{transform:translateX(-15300px)}56.84%{transform:translateX(-15402px)}57.19%{transform:translateX(-15504px)}57.55%{transform:translateX(-15606px)}57.91%{transform:translateX(-15708px)}58.27%{transform:translateX(-15810px)}58.63%{transform:translateX(-15912px)}58.98%{transform:translateX(-16014px)}59.34%{transform:translateX(-16116px)}59.7%{transform:translateX(-16218px)}60.05%{transform:translateX(-16320px)}60.41%{transform:translateX(-16422px)}60.77%{transform:translateX(-16524px)}61.12%{transform:translateX(-16626px)}61.49%{transform:translateX(-16728px)}61.84%{transform:translateX(-16830px)}62.2%{transform:translateX(-16932px)}62.56%{transform:translateX(-17034px)}62.91%{transform:translateX(-17136px)}63.27%{transform:translateX(-17238px)}63.63%{transform:translateX(-17340px)}63.99%{transform:translateX(-17442px)}64.34%{transform:translateX(-17544px)}64.7%{transform:translateX(-17646px)}65.06%{transform:translateX(-17748px)}65.42%{transform:translateX(-17850px)}65.78%{transform:translateX(-17952px)}66.13%{transform:translateX(-18054px)}66.49%{transform:translateX(-18156px)}66.85%{transform:translateX(-18258px)}67.2%{transform:translateX(-18360px)}67.56%{transform:translateX(-18462px)}67.92%{transform:translateX(-18564px)}68.27%{transform:translateX(-18666px)}68.63%{transform:translateX(-18768px)}68.99%{transform:translateX(-18870px)}69.35%{transform:translateX(-18972px)}69.7%{transform:translateX(-19074px)}70.06%{transform:translateX(-19176px)}70.42%{transform:translateX(-19278px)}70.78%{transform:translateX(-19380px)}71.14%{transform:translateX(-19482px)}71.49%{transform:translateX(-19584px)}71.85%{transform:translateX(-19686px)}72.21%{transform:translateX(-19788px)}72.57%{transform:translateX(-19890px)}72.93%{transform:translateX(-19992px)}73.28%{transform:translateX(-20094px)}73.64%{transform:translateX(-20196px)}74%{transform:translateX(-20298px)}74.35%{transform:translateX(-20400px)}74.71%{transform:translateX(-20502px)}75.07%{transform:translateX(-20604px)}75.43%{transform:translateX(-20706px)}75.78%{transform:translateX(-20808px)}76.14%{transform:translateX(-20910px)}76.5%{transform:translateX(-21012px)}76.86%{transform:translateX(-21114px)}77.21%{transform:translateX(-21216px)}77.57%{transform:translateX(-21318px)}77.93%{transform:translateX(-21420px)}78.29%{transform:translateX(-21522px)}78.64%{transform:translateX(-21624px)}79%{transform:translateX(-21726px)}79.35%{transform:translateX(-21828px)}79.72%{transform:translateX(-21930px)}80.08%{transform:translateX(-22032px)}80.43%{transform:translateX(-22134px)}80.79%{transform:translateX(-22236px)}81.14%{transform:translateX(-22338px)}81.5%{transform:translateX(-22440px)}81.86%{transform:translateX(-22542px)}82.22%{transform:translateX(-22644px)}82.57%{transform:translateX(-22746px)}82.93%{transform:translateX(-22848px)}83.29%{transform:translateX(-22950px)}83.65%{transform:translateX(-23052px)}84%{transform:translateX(-23154px)}84.36%{transform:translateX(-23256px)}84.71%{transform:translateX(-23358px)}85.08%{transform:translateX(-23460px)}85.44%{transform:translateX(-23562px)}85.79%{transform:translateX(-23664px)}86.15%{transform:translateX(-23766px)}86.51%{transform:translateX(-23868px)}86.86%{transform:translateX(-23970px)}87.23%{transform:translateX(-24072px)}87.57%{transform:translateX(-24174px)}87.94%{transform:translateX(-24276px)}88.3%{transform:translateX(-24378px)}88.65%{transform:translateX(-24480px)}89.01%{transform:translateX(-24582px)}89.37%{transform:translateX(-24684px)}89.72%{transform:translateX(-24786px)}90.08%{transform:translateX(-24888px)}90.44%{transform:translateX(-24990px)}90.8%{transform:translateX(-25092px)}91.15%{transform:translateX(-25194px)}91.51%{transform:translateX(-25296px)}91.86%{transform:translateX(-25398px)}92.22%{transform:translateX(-25500px)}92.59%{transform:translateX(-25602px)}92.94%{transform:translateX(-25704px)}93.29%{transform:translateX(-25806px)}93.66%{transform:translateX(-25908px)}94.01%{transform:translateX(-26010px)}94.37%{transform:translateX(-26112px)}94.72%{transform:translateX(-26214px)}97.1%{transform:translateX(-26316px)}97.11%{transform:translateX(-26418px)}97.21%{transform:translateX(-26622px)}97.22%{transform:translateX(-26826px)}to{transform:translateX(-26928px)}}.a{fill:#282d35}.c{fill:#71bef2}.d{fill:#d290e4}.e{fill:#6c6c6c}.f{fill:#a8cc8c}.g{fill:#afafaf}.h{fill:#b9c0cb}</style><g font-size="1.67" font-family="Monaco,Consolas,Menlo,'Bitstream Vera Sans Mono','Powerline Symbols',monospace"><defs><symbol id="1"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/io/single</text></symbol><symbol id="2"><text y="1.67" class="d">❯</text></symbol><symbol id="3"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/io/single</text><text x="54.108" y="1.67" class="e">master*</text></symbol><symbol id="4"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="f">go</text><text x="5.01" y="1.67" class="g">run</text><text x="9.018" y="1.67" class="g">-race</text><text x="15.03" y="1.67" class="g">main.go</text></symbol><symbol id="5"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="f">go</text><text x="5.01" y="1.67" class="h">run</text><path class="h" d="M8.016 0h1v2.171h-1z"/><text x="8.016" y="1.67" class="a"></text><text x="9.018" y="1.67" class="h">-race</text><text x="15.03" y="1.67" class="h">main.go</text></symbol><symbol id="6"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="f">go</text><text x="5.01" y="1.67" class="h">run</text><text x="9.018" y="1.67" class="h">-race</text><text x="15.03" y="1.67" fill="#b9c0cb" text-decoration="underline">main.go</text></symbol><symbol id="7"><text y="1.67" class="h">40.6</text><text x="5.01" y="1.67" class="h">MiB</text><text x="9.018" y="1.67" class="h">/</text><text x="11.022" y="1.67" class="h">40.6</text><text x="16.032" y="1.67" class="h">MiB</text><text x="20.04" y="1.67" class="h">[==========================================================|</text><text x="81.162" y="1.67" class="h">00:00</text><text x="87.174" y="1.67" class="h">]</text><text x="89.178" y="1.67" class="h">7.54</text><text x="94.188" y="1.67" class="h">MiB/s</text></symbol><symbol id="8"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/io/single</text><text x="54.108" y="1.67" class="e">master*</text><text x="62.124" y="1.67" fill="#dbab79">46s</text></symbol><symbol id="a"><path fill="transparent" d="M0 0h102v7H0z"/></symbol><symbol id="b"><path fill="#6f7683" d="M0 0h1.102v2.171H0z"/></symbol></defs><path class="a" d="M0 0h102v13.026H0z"/><g style="animation-duration:50.351952s;animation-iteration-count:infinite;animation-name:m;animation-timing-function:steps(1,end)"><svg width="27030"><svg><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="102"><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="204"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="2.146"/></svg><svg x="306"><use xlink:href="#a"/><use xlink:href="#b" x=".996" y="4.317"/><use xlink:href="#1" y="2.171"/></svg><svg x="408"><use xlink:href="#a"/><use xlink:href="#b" x=".996" y="4.317"/><use xlink:href="#1" y="2.171"/></svg><svg x="510"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#1" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="612"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#1" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="714"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><text y="3.841" class="c">~/go/src/github.com/vbauerster/mpb/examples/io/single</text><text x="54.108" y="3.841" class="e">master</text><use xlink:href="#2" y="4.342"/></svg><svg x="816"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="918"><use xlink:href="#a"/><use xlink:href="#b" x="2.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">g</text><text x="3.006" y="6.012" class="g">it</text><text x="6.012" y="6.012" class="g">clean</text><text x="12.024" y="6.012" class="g">-fdx</text></svg><svg x="1020"><use xlink:href="#a"/><use xlink:href="#b" x="3.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/></svg><svg x="1122"><use xlink:href="#a"/><use xlink:href="#b" x="4.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/></svg><svg x="1224"><use xlink:href="#a"/><use xlink:href="#b" x="5.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">go</text><text x="5.01" y="6.012" class="h">r</text><text x="6.012" y="6.012" class="g">un</text><text x="9.018" y="6.012" class="g">-race</text><text x="15.03" y="6.012" class="g">main.go</text></svg><svg x="1326"><use xlink:href="#a"/><use xlink:href="#b" x="6.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">go</text><text x="5.01" y="6.012" class="h">ru</text><text x="7.014" y="6.012" class="g">n</text><text x="9.018" y="6.012" class="g">-race</text><text x="15.03" y="6.012" class="g">main.go</text></svg><svg x="1428"><use xlink:href="#a"/><use xlink:href="#b" x="7.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">go</text><text x="5.01" y="6.012" class="h">run</text><text x="9.018" y="6.012" class="g">-race</text><text x="15.03" y="6.012" class="g">main.go</text></svg><svg x="1530"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#5" y="4.342"/></svg><svg x="1632"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#5" y="4.342"/></svg><svg x="1734"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="1836"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="1938"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2040"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="6.488"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2142"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="6.488"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2244"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.6</text><text x="5.01" y="8.183" class="h">KiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[----------------------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:00</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">0</text><text x="91.182" y="8.183" class="h">b/s</text></svg><svg x="2346"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">66.5</text><text x="5.01" y="8.183" class="h">KiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[----------------------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:00</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">0</text><text x="91.182" y="8.183" class="h">b/s</text></svg><svg x="2448"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">134.5</text><text x="6.012" y="8.183" class="h">KiB</text><text x="10.02" y="8.183" class="h">/</text><text x="12.024" y="8.183" class="h">40.6</text><text x="17.034" y="8.183" class="h">MiB</text><text x="21.042" y="8.183" class="h">[----------------------------------------------------------|</text><text x="82.164" y="8.183" class="h">09:01</text><text x="88.176" y="8.183" class="h">]</text><text x="90.18" y="8.183" class="h">6.18</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="2550"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">339.6</text><text x="6.012" y="8.183" class="h">KiB</text><text x="10.02" y="8.183" class="h">/</text><text x="12.024" y="8.183" class="h">40.6</text><text x="17.034" y="8.183" class="h">MiB</text><text x="21.042" y="8.183" class="h">[----------------------------------------------------------|</text><text x="82.164" y="8.183" class="h">08:18</text><text x="88.176" y="8.183" class="h">]</text><text x="90.18" y="8.183" class="h">6.41</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="2652"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">577.6</text><text x="6.012" y="8.183" class="h">KiB</text><text x="10.02" y="8.183" class="h">/</text><text x="12.024" y="8.183" class="h">40.6</text><text x="17.034" y="8.183" class="h">MiB</text><text x="21.042" y="8.183" class="h">[&gt;---------------------------------------------------------|</text><text x="82.164" y="8.183" class="h">07:32</text><text x="88.176" y="8.183" class="h">]</text><text x="90.18" y="8.183" class="h">7.05</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="2754"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">866.6</text><text x="6.012" y="8.183" class="h">KiB</text><text x="10.02" y="8.183" class="h">/</text><text x="12.024" y="8.183" class="h">40.6</text><text x="17.034" y="8.183" class="h">MiB</text><text x="21.042" y="8.183" class="h">[&gt;---------------------------------------------------------|</text><text x="82.164" y="8.183" class="h">06:43</text><text x="88.176" y="8.183" class="h">]</text><text x="90.18" y="8.183" class="h">7.36</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="2856"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">1.5</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=&gt;--------------------------------------------------------|</text><text x="80.16" y="8.183" class="h">05:12</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">8.12</text><text x="93.186" y="8.183" class="h">MiB/s</text></svg><svg x="2958"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">1.8</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[==&gt;-------------------------------------------------------|</text><text x="80.16" y="8.183" class="h">04:28</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">8.48</text><text x="93.186" y="8.183" class="h">MiB/s</text></svg><svg x="3060"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">2.4</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[==&gt;-------------------------------------------------------|</text><text x="80.16" y="8.183" class="h">03:29</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">16.62</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3162"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">2.9</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[===&gt;------------------------------------------------------|</text><text x="80.16" y="8.183" class="h">02:52</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">15.37</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3264"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">3.5</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[====&gt;-----------------------------------------------------|</text><text x="80.16" y="8.183" class="h">02:17</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">14.22</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3366"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">3.9</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=====&gt;----------------------------------------------------|</text><text x="80.16" y="8.183" class="h">01:59</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">13.18</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3468"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">4.3</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=====&gt;----------------------------------------------------|</text><text x="80.16" y="8.183" class="h">01:40</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">12.42</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3570"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">4.9</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[======&gt;---------------------------------------------------|</text><text x="80.16" y="8.183" class="h">01:19</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">18.55</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3672"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">5.2</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[======&gt;---------------------------------------------------|</text><text x="80.16" y="8.183" class="h">01:11</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">17.39</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3774"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">5.5</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=======&gt;--------------------------------------------------|</text><text x="80.16" y="8.183" class="h">01:03</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">16.23</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3876"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">5.6</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=======&gt;--------------------------------------------------|</text><text x="80.16" y="8.183" class="h">01:02</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">16.04</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="3978"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">6.2</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[========&gt;-------------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:50</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">17.91</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4080"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">6.5</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[========&gt;-------------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:47</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">16.80</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4182"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">6.7</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=========&gt;------------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:45</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">15.85</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4284"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">7.0</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=========&gt;------------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:41</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">14.66</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4386"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">7.3</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=========&gt;------------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:38</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">17.03</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4488"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">7.5</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[==========&gt;-----------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:39</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">16.26</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4590"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">7.7</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[==========&gt;-----------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:38</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">15.16</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4692"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">8.0</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[==========&gt;-----------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:36</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">14.16</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4794"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">8.1</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[===========&gt;----------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:35</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">13.56</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4896"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">8.4</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[===========&gt;----------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:36</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">13.08</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="4998"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">8.6</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[===========&gt;----------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:34</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">12.51</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5100"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">8.8</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[============&gt;---------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:34</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">12.05</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5202"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">9.0</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[============&gt;---------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:35</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">11.56</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5304"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">9.3</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[============&gt;---------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:32</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">11.12</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5406"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">9.5</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=============&gt;--------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:31</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">10.75</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5508"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">9.7</text><text x="4.008" y="8.183" class="h">MiB</text><text x="8.016" y="8.183" class="h">/</text><text x="10.02" y="8.183" class="h">40.6</text><text x="15.03" y="8.183" class="h">MiB</text><text x="19.038" y="8.183" class="h">[=============&gt;--------------------------------------------|</text><text x="80.16" y="8.183" class="h">00:30</text><text x="86.172" y="8.183" class="h">]</text><text x="88.176" y="8.183" class="h">10.23</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5610"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">10.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============&gt;--------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:29</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.89</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5712"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">10.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============&gt;-------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:30</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.54</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5814"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">10.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============&gt;-------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:28</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.34</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="5916"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">10.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============&gt;-------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:27</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.04</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="6018"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">10.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============&gt;------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:26</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.79</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="6120"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">11.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============&gt;------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:26</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.75</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="6222"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">11.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============&gt;------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">11.13</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="6324"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">11.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============&gt;------------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">10.81</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="6426"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">11.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================&gt;-----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">10.45</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="6528"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">11.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================&gt;-----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">10.00</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="6630"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">12.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================&gt;-----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.63</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="6732"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">12.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================&gt;----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.26</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="6834"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">12.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================&gt;----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.14</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="6936"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">12.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================&gt;----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.79</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7038"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">12.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================&gt;----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">10.07</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="7140"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">12.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================&gt;----------------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.96</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7242"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">13.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================&gt;---------------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.80</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7344"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">13.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================&gt;---------------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.71</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7446"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">13.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================&gt;---------------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.61</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7548"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">13.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================&gt;---------------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.36</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7650"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">13.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================&gt;--------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.19</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7752"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">13.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================&gt;--------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.93</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7854"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">14.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================&gt;--------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.65</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="7956"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">14.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================&gt;--------------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.48</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8058"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">14.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================&gt;-------------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.32</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8160"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">14.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================&gt;-------------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.20</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8262"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">14.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================&gt;-------------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.12</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8364"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">14.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================&gt;-------------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.97</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8466"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">15.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================&gt;-------------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8568"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">15.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================&gt;------------------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.74</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8670"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">15.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================&gt;------------------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.73</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8772"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">15.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================&gt;------------------------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.07</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8874"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">15.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================&gt;------------------------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.84</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="8976"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">15.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================&gt;------------------------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.72</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9078"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">15.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================&gt;-----------------------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.45</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9180"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================&gt;-----------------------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.27</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9282"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================&gt;-----------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.05</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9384"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================&gt;-----------------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9486"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================&gt;-----------------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.69</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9588"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================&gt;----------------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.60</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9690"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================&gt;----------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.49</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9792"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">16.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================&gt;----------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.41</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9894"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">17.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================&gt;----------------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.43</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="9996"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">17.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================&gt;---------------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.38</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10098"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">17.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================&gt;---------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.23</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10200"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">17.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================&gt;---------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.15</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10302"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">17.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================&gt;---------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.99</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10404"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">17.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================&gt;--------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.90</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10506"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">18.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================&gt;--------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.83</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10608"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">18.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================&gt;--------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.15</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10710"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">18.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================&gt;--------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.99</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10812"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">18.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================&gt;--------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="10914"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">18.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================&gt;-------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.62</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11016"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">18.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================&gt;-------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.58</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11118"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">18.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================&gt;-------------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.47</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11220"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================&gt;-------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.39</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11322"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================&gt;-------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.33</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11424"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================&gt;------------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.48</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11526"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================&gt;------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.27</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11628"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================&gt;------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.13</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11730"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================&gt;------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.89</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11832"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================&gt;------------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.67</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="11934"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">19.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================&gt;------------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.52</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12036"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================&gt;-----------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.42</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12138"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================&gt;-----------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.25</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12240"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================&gt;-----------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.12</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12342"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================&gt;-----------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.94</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12444"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================&gt;-----------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.75</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12546"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================&gt;-----------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.59</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12648"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================&gt;----------------------------|</text><text x="81.162" y="8.183" class="h">00:27</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.57</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12750"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">20.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================&gt;----------------------------|</text><text x="81.162" y="8.183" class="h">00:27</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.45</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12852"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================&gt;----------------------------|</text><text x="81.162" y="8.183" class="h">00:28</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.40</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="12954"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================&gt;----------------------------|</text><text x="81.162" y="8.183" class="h">00:30</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.36</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13056"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================&gt;----------------------------|</text><text x="81.162" y="8.183" class="h">00:29</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.28</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13158"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================&gt;----------------------------|</text><text x="81.162" y="8.183" class="h">00:28</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.22</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13260"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================&gt;---------------------------|</text><text x="81.162" y="8.183" class="h">00:27</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.19</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13362"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================&gt;---------------------------|</text><text x="81.162" y="8.183" class="h">00:29</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.10</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13464"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================&gt;---------------------------|</text><text x="81.162" y="8.183" class="h">00:28</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.09</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13566"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================&gt;---------------------------|</text><text x="81.162" y="8.183" class="h">00:27</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.04</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13668"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">21.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================&gt;---------------------------|</text><text x="81.162" y="8.183" class="h">00:27</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13770"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================&gt;--------------------------|</text><text x="81.162" y="8.183" class="h">00:27</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.83</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13872"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================&gt;--------------------------|</text><text x="81.162" y="8.183" class="h">00:26</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.78</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="13974"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================&gt;--------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.80</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14076"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================&gt;--------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.76</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14178"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================&gt;--------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.72</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14280"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================&gt;--------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.70</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14382"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================&gt;-------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.60</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14484"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">22.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================&gt;-------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.58</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14586"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================&gt;-------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.35</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14688"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================&gt;-------------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.33</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14790"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================&gt;-------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.33</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14892"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================&gt;-------------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.31</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="14994"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================&gt;------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.28</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15096"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================&gt;------------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.20</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15198"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================&gt;------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.26</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15300"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================&gt;------------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.26</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15402"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">23.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================&gt;------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.31</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15504"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================&gt;------------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.26</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15606"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================&gt;-----------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.25</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15708"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================&gt;-----------------------|</text><text x="81.162" y="8.183" class="h">00:25</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.20</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15810"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================&gt;-----------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.20</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="15912"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================&gt;-----------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.14</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16014"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================&gt;-----------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.16</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16116"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================&gt;-----------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.13</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16218"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">24.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================&gt;----------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.14</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16320"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================&gt;----------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.17</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16422"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================&gt;----------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.16</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16524"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================&gt;----------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.05</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16626"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================&gt;----------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.14</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16728"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================&gt;----------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.06</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16830"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================================&gt;---------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.04</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="16932"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================================&gt;---------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.02</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17034"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">25.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================================&gt;---------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.96</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17136"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================================&gt;---------------------|</text><text x="81.162" y="8.183" class="h">00:24</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.05</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17238"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================================&gt;---------------------|</text><text x="81.162" y="8.183" class="h">00:23</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.03</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17340"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================&gt;--------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.18</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17442"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================&gt;--------------------|</text><text x="81.162" y="8.183" class="h">00:22</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.10</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17544"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================&gt;--------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.09</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17646"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================&gt;--------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.09</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17748"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================&gt;--------------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.07</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17850"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================&gt;--------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.02</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="17952"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">26.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================&gt;--------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.92</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18054"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================&gt;-------------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.89</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18156"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================&gt;-------------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.99</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18258"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================&gt;-------------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.98</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18360"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================&gt;-------------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.99</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18462"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================&gt;-------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.98</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18564"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================&gt;-------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.94</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18666"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================&gt;------------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.98</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18768"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================&gt;------------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18870"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">27.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================&gt;------------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.81</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="18972"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================&gt;------------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.71</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19074"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================&gt;------------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.58</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19176"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================&gt;------------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.44</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19278"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================&gt;------------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.38</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19380"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================&gt;-----------------|</text><text x="81.162" y="8.183" class="h">00:17</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.33</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19482"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================&gt;-----------------|</text><text x="81.162" y="8.183" class="h">00:17</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.19</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19584"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================&gt;-----------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.17</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19686"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================&gt;-----------------|</text><text x="81.162" y="8.183" class="h">00:17</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.17</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19788"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================&gt;-----------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.11</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19890"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================&gt;-----------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.03</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="19992"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">28.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================&gt;-----------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.89</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20094"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================================&gt;----------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.79</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20196"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================================&gt;----------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.72</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20298"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================================&gt;----------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.60</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20400"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================================&gt;----------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.50</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20502"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================================&gt;----------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.48</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20604"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================================&gt;----------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.44</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20706"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=========================================&gt;----------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.37</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20808"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================&gt;---------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.31</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="20910"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================&gt;---------------|</text><text x="81.162" y="8.183" class="h">00:21</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.31</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21012"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">29.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================&gt;---------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.34</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21114"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================&gt;---------------|</text><text x="81.162" y="8.183" class="h">00:20</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.32</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21216"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================&gt;---------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.22</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21318"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================&gt;---------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.18</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21420"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================&gt;---------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.16</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21522"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================================&gt;--------------|</text><text x="81.162" y="8.183" class="h">00:19</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.21</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21624"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================================&gt;--------------|</text><text x="81.162" y="8.183" class="h">00:18</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.19</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21726"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================================&gt;--------------|</text><text x="81.162" y="8.183" class="h">00:17</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.18</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21828"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================================&gt;--------------|</text><text x="81.162" y="8.183" class="h">00:17</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.19</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="21930"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">30.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================================&gt;--------------|</text><text x="81.162" y="8.183" class="h">00:17</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.99</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22032"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">31.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===========================================&gt;--------------|</text><text x="81.162" y="8.183" class="h">00:17</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.89</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22134"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">31.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================================&gt;-------------|</text><text x="81.162" y="8.183" class="h">00:16</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.92</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22236"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">31.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================================&gt;-------------|</text><text x="81.162" y="8.183" class="h">00:15</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.80</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22338"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">31.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================================&gt;-------------|</text><text x="81.162" y="8.183" class="h">00:15</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.85</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22440"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">31.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================================&gt;-------------|</text><text x="81.162" y="8.183" class="h">00:14</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.87</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22542"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">31.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[============================================&gt;-------------|</text><text x="81.162" y="8.183" class="h">00:13</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.93</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22644"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">31.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================================&gt;------------|</text><text x="81.162" y="8.183" class="h">00:13</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.95</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22746"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">32.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================================&gt;------------|</text><text x="81.162" y="8.183" class="h">00:12</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.98</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22848"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">32.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================================&gt;------------|</text><text x="81.162" y="8.183" class="h">00:11</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">5.99</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="22950"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">32.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================================&gt;------------|</text><text x="81.162" y="8.183" class="h">00:11</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.04</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23052"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">32.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=============================================&gt;------------|</text><text x="81.162" y="8.183" class="h">00:10</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.08</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23154"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">32.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================================&gt;-----------|</text><text x="81.162" y="8.183" class="h">00:10</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.03</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23256"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">32.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================================&gt;-----------|</text><text x="81.162" y="8.183" class="h">00:09</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.05</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23358"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">33.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==============================================&gt;-----------|</text><text x="81.162" y="8.183" class="h">00:09</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.08</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23460"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">33.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================================&gt;----------|</text><text x="81.162" y="8.183" class="h">00:08</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.13</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23562"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">33.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================================&gt;----------|</text><text x="81.162" y="8.183" class="h">00:07</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.30</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23664"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">33.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===============================================&gt;----------|</text><text x="81.162" y="8.183" class="h">00:07</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.33</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23766"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">34.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================================&gt;---------|</text><text x="81.162" y="8.183" class="h">00:07</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.44</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23868"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">34.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================================&gt;---------|</text><text x="81.162" y="8.183" class="h">00:06</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="23970"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">34.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[================================================&gt;---------|</text><text x="81.162" y="8.183" class="h">00:05</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24072"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">34.8</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================================&gt;--------|</text><text x="81.162" y="8.183" class="h">00:05</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">6.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24174"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">35.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=================================================&gt;--------|</text><text x="81.162" y="8.183" class="h">00:04</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">10.50</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="24276"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">35.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================================&gt;-------|</text><text x="81.162" y="8.183" class="h">00:04</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">10.17</text><text x="95.19" y="8.183" class="h">MiB/s</text></svg><svg x="24378"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">35.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================================&gt;-------|</text><text x="81.162" y="8.183" class="h">00:03</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.88</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24480"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">35.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==================================================&gt;-------|</text><text x="81.162" y="8.183" class="h">00:03</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.36</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24582"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">36.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================================&gt;------|</text><text x="81.162" y="8.183" class="h">00:03</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.27</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24684"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">36.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================================&gt;------|</text><text x="81.162" y="8.183" class="h">00:02</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">9.08</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24786"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">36.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[===================================================&gt;------|</text><text x="81.162" y="8.183" class="h">00:02</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.83</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24888"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">37.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================================================&gt;-----|</text><text x="81.162" y="8.183" class="h">00:02</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.64</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="24990"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">37.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[====================================================&gt;-----|</text><text x="81.162" y="8.183" class="h">00:02</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.48</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25092"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">37.5</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================================&gt;----|</text><text x="81.162" y="8.183" class="h">00:02</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.26</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25194"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">37.9</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================================&gt;----|</text><text x="81.162" y="8.183" class="h">00:02</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.16</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25296"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">38.1</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=====================================================&gt;----|</text><text x="81.162" y="8.183" class="h">00:01</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.21</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25398"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">38.4</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================================&gt;---|</text><text x="81.162" y="8.183" class="h">00:01</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.38</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25500"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">38.7</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[======================================================&gt;---|</text><text x="81.162" y="8.183" class="h">00:01</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.31</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25602"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">39.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================================&gt;--|</text><text x="81.162" y="8.183" class="h">00:01</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.40</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25704"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">39.3</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[=======================================================&gt;--|</text><text x="81.162" y="8.183" class="h">00:01</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.21</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25806"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">39.6</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================================&gt;-|</text><text x="81.162" y="8.183" class="h">00:00</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">8.14</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="25908"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">40.0</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[========================================================&gt;-|</text><text x="81.162" y="8.183" class="h">00:00</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.97</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="26010"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">40.2</text><text x="5.01" y="8.183" class="h">MiB</text><text x="9.018" y="8.183" class="h">/</text><text x="11.022" y="8.183" class="h">40.6</text><text x="16.032" y="8.183" class="h">MiB</text><text x="20.04" y="8.183" class="h">[==========================================================|</text><text x="81.162" y="8.183" class="h">00:00</text><text x="87.174" y="8.183" class="h">]</text><text x="89.178" y="8.183" class="h">7.75</text><text x="94.188" y="8.183" class="h">MiB/s</text></svg><svg x="26112"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/></svg><svg x="26214"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/></svg><svg x="26316"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="8.659"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/></svg><svg x="26418"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="10.83"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/></svg><svg x="26520"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/><use xlink:href="#8" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="26622"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/><use xlink:href="#8" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="26724"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/><use xlink:href="#8" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="26826"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="13.001"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#7" y="6.513"/><use xlink:href="#8" y="10.855"/><use xlink:href="#2" y="13.026"/></svg><svg x="26928"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="13.001"/><use xlink:href="#3"/><use xlink:href="#6" y="2.171"/><use xlink:href="#7" y="4.342"/><use xlink:href="#8" y="8.684"/><use xlink:href="#2" y="10.855"/></svg></svg></g></g></svg></svg>
0 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1020" height="173.68"><rect width="1020" height="173.68" rx="0" ry="0" class="a"/><svg height="173.68" viewBox="0 0 102 17.368" width="1020" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style>@keyframes m{0%{transform:translateX(0)}1.87%{transform:translateX(-102px)}1.89%{transform:translateX(-408px)}1.9%{transform:translateX(-510px)}1.92%{transform:translateX(-612px)}2.07%{transform:translateX(-714px)}2.16%{transform:translateX(-816px)}4.56%{transform:translateX(-918px)}5.18%{transform:translateX(-1020px)}5.77%{transform:translateX(-1122px)}6.6%{transform:translateX(-1224px)}7.36%{transform:translateX(-1326px)}7.71%{transform:translateX(-1428px)}9.58%{transform:translateX(-1632px)}10.82%{transform:translateX(-1836px)}10.84%{transform:translateX(-1938px)}10.88%{transform:translateX(-2040px)}10.89%{transform:translateX(-2142px)}14.85%{transform:translateX(-2244px)}15.4%{transform:translateX(-2346px)}15.95%{transform:translateX(-2448px)}16.51%{transform:translateX(-2550px)}17.06%{transform:translateX(-2652px)}17.61%{transform:translateX(-2754px)}18.16%{transform:translateX(-2856px)}18.72%{transform:translateX(-2958px)}19.28%{transform:translateX(-3060px)}19.82%{transform:translateX(-3162px)}20.39%{transform:translateX(-3264px)}20.93%{transform:translateX(-3366px)}21.47%{transform:translateX(-3468px)}22.04%{transform:translateX(-3570px)}22.57%{transform:translateX(-3672px)}23.15%{transform:translateX(-3774px)}23.7%{transform:translateX(-3876px)}24.23%{transform:translateX(-3978px)}24.8%{transform:translateX(-4080px)}25.34%{transform:translateX(-4182px)}25.9%{transform:translateX(-4284px)}26.46%{transform:translateX(-4386px)}27%{transform:translateX(-4488px)}27.56%{transform:translateX(-4590px)}28.12%{transform:translateX(-4692px)}28.66%{transform:translateX(-4794px)}29.22%{transform:translateX(-4896px)}29.76%{transform:translateX(-4998px)}30.33%{transform:translateX(-5100px)}30.88%{transform:translateX(-5202px)}31.42%{transform:translateX(-5304px)}31.98%{transform:translateX(-5406px)}32.53%{transform:translateX(-5508px)}33.08%{transform:translateX(-5610px)}33.65%{transform:translateX(-5712px)}34.18%{transform:translateX(-5814px)}34.75%{transform:translateX(-5916px)}35.29%{transform:translateX(-6018px)}35.85%{transform:translateX(-6120px)}36.42%{transform:translateX(-6222px)}36.96%{transform:translateX(-6324px)}37.51%{transform:translateX(-6426px)}38.05%{transform:translateX(-6528px)}38.61%{transform:translateX(-6630px)}39.17%{transform:translateX(-6732px)}39.71%{transform:translateX(-6834px)}40.28%{transform:translateX(-6936px)}40.82%{transform:translateX(-7038px)}41.39%{transform:translateX(-7140px)}41.95%{transform:translateX(-7242px)}42.48%{transform:translateX(-7344px)}43.03%{transform:translateX(-7446px)}43.58%{transform:translateX(-7548px)}44.15%{transform:translateX(-7650px)}44.69%{transform:translateX(-7752px)}45.26%{transform:translateX(-7854px)}45.81%{transform:translateX(-7956px)}46.34%{transform:translateX(-8058px)}46.92%{transform:translateX(-8160px)}47.46%{transform:translateX(-8262px)}48%{transform:translateX(-8364px)}48.57%{transform:translateX(-8466px)}49.11%{transform:translateX(-8568px)}49.67%{transform:translateX(-8670px)}50.21%{transform:translateX(-8772px)}50.77%{transform:translateX(-8874px)}51.32%{transform:translateX(-8976px)}51.87%{transform:translateX(-9078px)}52.44%{transform:translateX(-9180px)}52.98%{transform:translateX(-9282px)}53.54%{transform:translateX(-9384px)}54.1%{transform:translateX(-9486px)}54.64%{transform:translateX(-9588px)}55.21%{transform:translateX(-9690px)}55.75%{transform:translateX(-9792px)}56.32%{transform:translateX(-9894px)}56.86%{transform:translateX(-9996px)}57.4%{transform:translateX(-10098px)}57.98%{transform:translateX(-10200px)}58.52%{transform:translateX(-10302px)}59.08%{transform:translateX(-10404px)}59.63%{transform:translateX(-10506px)}60.19%{transform:translateX(-10608px)}60.72%{transform:translateX(-10710px)}61.28%{transform:translateX(-10812px)}61.83%{transform:translateX(-10914px)}62.39%{transform:translateX(-11016px)}62.93%{transform:translateX(-11118px)}63.49%{transform:translateX(-11220px)}64.04%{transform:translateX(-11322px)}64.6%{transform:translateX(-11424px)}65.16%{transform:translateX(-11526px)}65.69%{transform:translateX(-11628px)}66.26%{transform:translateX(-11730px)}66.8%{transform:translateX(-11832px)}67.37%{transform:translateX(-11934px)}67.92%{transform:translateX(-12036px)}68.45%{transform:translateX(-12138px)}69.02%{transform:translateX(-12240px)}69.56%{transform:translateX(-12342px)}70.14%{transform:translateX(-12444px)}70.69%{transform:translateX(-12546px)}71.22%{transform:translateX(-12648px)}71.79%{transform:translateX(-12750px)}72.33%{transform:translateX(-12852px)}72.9%{transform:translateX(-12954px)}73.45%{transform:translateX(-13056px)}73.98%{transform:translateX(-13158px)}74.56%{transform:translateX(-13260px)}75.09%{transform:translateX(-13362px)}75.65%{transform:translateX(-13464px)}76.21%{transform:translateX(-13566px)}76.75%{transform:translateX(-13668px)}77.32%{transform:translateX(-13770px)}77.85%{transform:translateX(-13872px)}78.41%{transform:translateX(-13974px)}78.98%{transform:translateX(-14076px)}79.51%{transform:translateX(-14178px)}80.08%{transform:translateX(-14280px)}80.63%{transform:translateX(-14382px)}81.18%{transform:translateX(-14484px)}81.74%{transform:translateX(-14586px)}82.29%{transform:translateX(-14688px)}82.85%{transform:translateX(-14790px)}83.39%{transform:translateX(-14892px)}83.96%{transform:translateX(-14994px)}84.5%{transform:translateX(-15096px)}85.04%{transform:translateX(-15198px)}85.61%{transform:translateX(-15300px)}86.15%{transform:translateX(-15402px)}86.72%{transform:translateX(-15504px)}87.27%{transform:translateX(-15606px)}87.81%{transform:translateX(-15708px)}88.37%{transform:translateX(-15810px)}88.92%{transform:translateX(-15912px)}89.49%{transform:translateX(-16014px)}90.04%{transform:translateX(-16116px)}90.57%{transform:translateX(-16218px)}91.14%{transform:translateX(-16320px)}96.34%{transform:translateX(-16524px)}96.56%{transform:translateX(-16728px)}96.57%{transform:translateX(-16830px)}96.59%{transform:translateX(-16932px)}to{transform:translateX(-17034px)}}.a{fill:#f8f8f8}.c{fill:#4f97d7}.d{fill:#a31db1}.e{fill:#6c6c6c}.f{fill:#67b11d}.g{fill:#afafaf}.h{fill:#444155}</style><g font-size="1.67" font-family="Monaco,Consolas,Menlo,'Bitstream Vera Sans Mono','Powerline Symbols',monospace"><defs><symbol id="1"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/complex</text></symbol><symbol id="2"><text y="1.67" class="d">❯</text></symbol><symbol id="3"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/complex</text><text x="52.104" y="1.67" class="e">master*</text></symbol><symbol id="4"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="f">go</text><text x="5.01" y="1.67" class="g">run</text><text x="9.018" y="1.67" class="g">-race</text><text x="15.03" y="1.67" class="g">main.go</text></symbol><symbol id="5"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="f">go</text><text x="5.01" y="1.67" class="h">run</text><path fill="#b9c0cb" d="M8.016 0h1v2.171h-1z"/><text x="8.016" y="1.67" class="a"></text><text x="9.018" y="1.67" class="h">-race</text><text x="15.03" y="1.67" class="h">main.go</text></symbol><symbol id="6"><text y="1.67" class="d">❯</text><text x="2.004" y="1.67" class="f">go</text><text x="5.01" y="1.67" class="h">run</text><text x="9.018" y="1.67" class="h">-race</text><text x="15.03" y="1.67" fill="#444155" text-decoration="underline">main.go</text></symbol><symbol id="7"><text y="1.67" class="h">Task#03:</text><text x="9.018" y="1.67" class="h">installing</text><text x="24.048" y="1.67" class="h">00:08</text><text x="30.06" y="1.67" class="h">[======&gt;-------------------------------------------------------]</text><text x="96.192" y="1.67" class="h">11</text><text x="99.198" y="1.67" class="h">%</text></symbol><symbol id="8"><text y="1.67" class="h">Task#03:</text><text x="9.018" y="1.67" class="h">installing</text><text x="25.05" y="1.67" class="h">00:07</text><text x="31.062" y="1.67" class="h">[==============&gt;-----------------------------------------------]</text><text x="97.194" y="1.67" class="h">24</text><text x="100.2" y="1.67" class="h">%</text></symbol><symbol id="9"><text y="1.67" class="h">Task#02:</text><text x="9.018" y="1.67" class="h">done!</text></symbol><symbol id="10"><text y="1.67" class="h">Task#03:</text><text x="9.018" y="1.67" class="h">done!</text></symbol><symbol id="11"><text y="1.67" class="h">Task#01:</text><text x="9.018" y="1.67" class="h">done!</text></symbol><symbol id="12"><text y="1.67" class="h">Task#00:</text><text x="9.018" y="1.67" class="h">done!</text></symbol><symbol id="13"><text y="1.67" class="c">~/go/src/github.com/vbauerster/mpb/examples/complex</text><text x="52.104" y="1.67" class="e">master*</text><text x="60.12" y="1.67" fill="#b1951d">19s</text></symbol><symbol id="a"><path fill="transparent" d="M0 0h102v9H0z"/></symbol><symbol id="b"><path class="h" d="M0 0h1.102v2.171H0z"/></symbol></defs><path class="a" d="M0 0h102v17.368H0z"/><g style="animation-duration:21.706843s;animation-iteration-count:infinite;animation-name:m;animation-timing-function:steps(1,end)"><svg width="17136"><svg><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="102"><use xlink:href="#a"/><use xlink:href="#b" x="-.004"/></svg><svg x="204"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="2.146"/></svg><svg x="306"><use xlink:href="#a"/><use xlink:href="#b" x=".996" y="4.317"/><use xlink:href="#1" y="2.171"/></svg><svg x="408"><use xlink:href="#a"/><use xlink:href="#b" x=".996" y="4.317"/><use xlink:href="#1" y="2.171"/></svg><svg x="510"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#1" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="612"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#1" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="714"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><text y="3.841" class="c">~/go/src/github.com/vbauerster/mpb/examples/complex</text><text x="52.104" y="3.841" class="e">master</text><use xlink:href="#2" y="4.342"/></svg><svg x="816"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#2" y="4.342"/></svg><svg x="918"><use xlink:href="#a"/><use xlink:href="#b" x="2.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">g</text><text x="3.006" y="6.012" class="g">o</text><text x="5.01" y="6.012" class="g">run</text><text x="9.018" y="6.012" class="g">-race</text><text x="15.03" y="6.012" class="g">main.go</text></svg><svg x="1020"><use xlink:href="#a"/><use xlink:href="#b" x="3.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/></svg><svg x="1122"><use xlink:href="#a"/><use xlink:href="#b" x="4.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#4" y="4.342"/></svg><svg x="1224"><use xlink:href="#a"/><use xlink:href="#b" x="5.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">go</text><text x="5.01" y="6.012" class="h">r</text><text x="6.012" y="6.012" class="g">un</text><text x="9.018" y="6.012" class="g">-race</text><text x="15.03" y="6.012" class="g">main.go</text></svg><svg x="1326"><use xlink:href="#a"/><use xlink:href="#b" x="6.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">go</text><text x="5.01" y="6.012" class="h">ru</text><text x="7.014" y="6.012" class="g">n</text><text x="9.018" y="6.012" class="g">-race</text><text x="15.03" y="6.012" class="g">main.go</text></svg><svg x="1428"><use xlink:href="#a"/><use xlink:href="#b" x="7.996" y="4.317"/><use xlink:href="#3" y="2.171"/><text y="6.012" class="d">❯</text><text x="2.004" y="6.012" class="f">go</text><text x="5.01" y="6.012" class="h">run</text><text x="9.018" y="6.012" class="g">-race</text><text x="15.03" y="6.012" class="g">main.go</text></svg><svg x="1530"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#5" y="4.342"/></svg><svg x="1632"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#5" y="4.342"/></svg><svg x="1734"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="1836"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="1938"><use xlink:href="#a"/><use xlink:href="#b" x="21.996" y="4.317"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2040"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="6.488"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2142"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="6.488"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/></svg><svg x="2244"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">4</text><text x="23.046" y="8.183" class="h">/</text><text x="25.05" y="8.183" class="h">268</text><text x="29.058" y="8.183" class="h">[&gt;-------------------------------------------------------------]</text><text x="96.192" y="8.183" class="h">1</text><text x="98.196" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">2</text><text x="23.046" y="10.354" class="h">/</text><text x="25.05" y="10.354" class="h">274</text><text x="29.058" y="10.354" class="h">[--------------------------------------------------------------]</text><text x="96.192" y="10.354" class="h">1</text><text x="98.196" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">3</text><text x="23.046" y="12.525" class="h">/</text><text x="25.05" y="12.525" class="h">114</text><text x="29.058" y="12.525" class="h">[=&gt;------------------------------------------------------------]</text><text x="96.192" y="12.525" class="h">3</text><text x="98.196" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">4</text><text x="23.046" y="14.696" class="h">/</text><text x="25.05" y="14.696" class="h">114</text><text x="29.058" y="14.696" class="h">[=&gt;------------------------------------------------------------]</text><text x="96.192" y="14.696" class="h">4</text><text x="98.196" y="14.696" class="h">%</text></svg><svg x="2346"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">6</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[&gt;-------------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">2</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="22.044" y="10.354" class="h">8</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[=&gt;------------------------------------------------------------]</text><text x="97.194" y="10.354" class="h">3</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="22.044" y="12.525" class="h">9</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[====&gt;---------------------------------------------------------]</text><text x="97.194" y="12.525" class="h">8</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">12</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[======&gt;-------------------------------------------------------]</text><text x="96.192" y="14.696" class="h">11</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="2448"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">9</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[=&gt;------------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">3</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">12</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[==&gt;-----------------------------------------------------------]</text><text x="97.194" y="10.354" class="h">4</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">12</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[======&gt;-------------------------------------------------------]</text><text x="96.192" y="12.525" class="h">11</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">24</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[============&gt;-------------------------------------------------]</text><text x="96.192" y="14.696" class="h">21</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="2550"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">11</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[==&gt;-----------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">4</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">16</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[===&gt;----------------------------------------------------------]</text><text x="97.194" y="10.354" class="h">6</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">18</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[=========&gt;----------------------------------------------------]</text><text x="96.192" y="12.525" class="h">16</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">36</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[===================&gt;------------------------------------------]</text><text x="96.192" y="14.696" class="h">32</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="2652"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">13</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[==&gt;-----------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">5</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">22</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[====&gt;---------------------------------------------------------]</text><text x="97.194" y="10.354" class="h">8</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">27</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[==============&gt;-----------------------------------------------]</text><text x="96.192" y="12.525" class="h">24</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">40</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[=====================&gt;----------------------------------------]</text><text x="96.192" y="14.696" class="h">35</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="2754"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">15</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[==&gt;-----------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">6</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">24</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[====&gt;---------------------------------------------------------]</text><text x="97.194" y="10.354" class="h">9</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">30</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[===============&gt;----------------------------------------------]</text><text x="96.192" y="12.525" class="h">26</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">48</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[=========================&gt;------------------------------------]</text><text x="96.192" y="14.696" class="h">42</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="2856"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">16</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[===&gt;----------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">6</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">30</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[======&gt;-------------------------------------------------------]</text><text x="96.192" y="10.354" class="h">11</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">39</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[====================&gt;-----------------------------------------]</text><text x="96.192" y="12.525" class="h">34</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">56</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[=============================&gt;--------------------------------]</text><text x="96.192" y="14.696" class="h">49</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="2958"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">18</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[===&gt;----------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">7</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">34</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[=======&gt;------------------------------------------------------]</text><text x="96.192" y="10.354" class="h">12</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">42</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[======================&gt;---------------------------------------]</text><text x="96.192" y="12.525" class="h">37</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">64</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[==================================&gt;---------------------------]</text><text x="96.192" y="14.696" class="h">56</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="3060"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">19</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[===&gt;----------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">7</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">40</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[========&gt;-----------------------------------------------------]</text><text x="96.192" y="10.354" class="h">15</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">45</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[=======================&gt;--------------------------------------]</text><text x="96.192" y="12.525" class="h">39</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">68</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[====================================&gt;-------------------------]</text><text x="96.192" y="14.696" class="h">60</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="3162"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">21</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[====&gt;---------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">8</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">44</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[=========&gt;----------------------------------------------------]</text><text x="96.192" y="10.354" class="h">16</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">54</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[============================&gt;---------------------------------]</text><text x="96.192" y="12.525" class="h">47</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">76</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[========================================&gt;---------------------]</text><text x="96.192" y="14.696" class="h">67</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="3264"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">25</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[=====&gt;--------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">9</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">52</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[===========&gt;--------------------------------------------------]</text><text x="96.192" y="10.354" class="h">19</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">60</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[================================&gt;-----------------------------]</text><text x="96.192" y="12.525" class="h">53</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">80</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[===========================================&gt;------------------]</text><text x="96.192" y="14.696" class="h">70</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="3366"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">27</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[=====&gt;--------------------------------------------------------]</text><text x="96.192" y="8.183" class="h">10</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">54</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[===========&gt;--------------------------------------------------]</text><text x="96.192" y="10.354" class="h">20</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">63</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[=================================&gt;----------------------------]</text><text x="96.192" y="12.525" class="h">55</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">88</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[===============================================&gt;--------------]</text><text x="96.192" y="14.696" class="h">77</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="3468"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">29</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[======&gt;-------------------------------------------------------]</text><text x="96.192" y="8.183" class="h">11</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">58</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[============&gt;-------------------------------------------------]</text><text x="96.192" y="10.354" class="h">21</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">69</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[=====================================&gt;------------------------]</text><text x="96.192" y="12.525" class="h">61</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">92</text><text x="24.048" y="14.696" class="h">/</text><text x="26.052" y="14.696" class="h">114</text><text x="30.06" y="14.696" class="h">[=================================================&gt;------------]</text><text x="96.192" y="14.696" class="h">81</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="3570"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">30</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[======&gt;-------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">11</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="22.044" y="10.354" class="h">60</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=============&gt;------------------------------------------------]</text><text x="97.194" y="10.354" class="h">22</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="22.044" y="12.525" class="h">75</text><text x="25.05" y="12.525" class="h">/</text><text x="27.054" y="12.525" class="h">114</text><text x="31.062" y="12.525" class="h">[========================================&gt;---------------------]</text><text x="97.194" y="12.525" class="h">66</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">100</text><text x="25.05" y="14.696" class="h">/</text><text x="27.054" y="14.696" class="h">114</text><text x="31.062" y="14.696" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="14.696" class="h">88</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="3672"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">32</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[======&gt;-------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">12</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="22.044" y="10.354" class="h">66</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==============&gt;-----------------------------------------------]</text><text x="97.194" y="10.354" class="h">24</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="22.044" y="12.525" class="h">78</text><text x="25.05" y="12.525" class="h">/</text><text x="27.054" y="12.525" class="h">114</text><text x="31.062" y="12.525" class="h">[=========================================&gt;--------------------]</text><text x="97.194" y="12.525" class="h">68</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">108</text><text x="25.05" y="14.696" class="h">/</text><text x="27.054" y="14.696" class="h">114</text><text x="31.062" y="14.696" class="h">[==========================================================&gt;---]</text><text x="97.194" y="14.696" class="h">95</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="3774"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">34</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=======&gt;------------------------------------------------------]</text><text x="97.194" y="8.183" class="h">13</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="22.044" y="10.354" class="h">70</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="10.354" class="h">26</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="22.044" y="12.525" class="h">84</text><text x="25.05" y="12.525" class="h">/</text><text x="27.054" y="12.525" class="h">114</text><text x="31.062" y="12.525" class="h">[=============================================&gt;----------------]</text><text x="97.194" y="12.525" class="h">74</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">downloading</text><text x="21.042" y="14.696" class="h">114</text><text x="25.05" y="14.696" class="h">/</text><text x="27.054" y="14.696" class="h">114</text><text x="31.062" y="14.696" class="h">[==============================================================]</text><text x="96.192" y="14.696" class="h">100</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="3876"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">35</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[=======&gt;------------------------------------------------------]</text><text x="96.192" y="8.183" class="h">13</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">74</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[================&gt;---------------------------------------------]</text><text x="96.192" y="10.354" class="h">27</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">90</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[================================================&gt;-------------]</text><text x="96.192" y="12.525" class="h">79</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="24.048" y="14.696" class="h">00:00</text><text x="30.06" y="14.696" class="h">[--------------------------------------------------------------]</text><text x="97.194" y="14.696" class="h">1</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="3978"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">37</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[========&gt;-----------------------------------------------------]</text><text x="96.192" y="8.183" class="h">14</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">76</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[================&gt;---------------------------------------------]</text><text x="96.192" y="10.354" class="h">28</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">96</text><text x="24.048" y="12.525" class="h">/</text><text x="26.052" y="12.525" class="h">114</text><text x="30.06" y="12.525" class="h">[===================================================&gt;----------]</text><text x="96.192" y="12.525" class="h">84</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="24.048" y="14.696" class="h">00:00</text><text x="30.06" y="14.696" class="h">[=&gt;------------------------------------------------------------]</text><text x="97.194" y="14.696" class="h">2</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="4080"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">40</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[========&gt;-----------------------------------------------------]</text><text x="97.194" y="8.183" class="h">15</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="22.044" y="10.354" class="h">78</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=================&gt;--------------------------------------------]</text><text x="97.194" y="10.354" class="h">28</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">102</text><text x="25.05" y="12.525" class="h">/</text><text x="27.054" y="12.525" class="h">114</text><text x="31.062" y="12.525" class="h">[======================================================&gt;-------]</text><text x="97.194" y="12.525" class="h">89</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[=&gt;------------------------------------------------------------]</text><text x="98.196" y="14.696" class="h">4</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="4182"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">42</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========&gt;----------------------------------------------------]</text><text x="97.194" y="8.183" class="h">16</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="22.044" y="10.354" class="h">82</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==================&gt;-------------------------------------------]</text><text x="97.194" y="10.354" class="h">30</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">108</text><text x="25.05" y="12.525" class="h">/</text><text x="27.054" y="12.525" class="h">114</text><text x="31.062" y="12.525" class="h">[==========================================================&gt;---]</text><text x="97.194" y="12.525" class="h">95</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[==&gt;-----------------------------------------------------------]</text><text x="98.196" y="14.696" class="h">4</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="4284"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">44</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========&gt;----------------------------------------------------]</text><text x="97.194" y="8.183" class="h">16</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="22.044" y="10.354" class="h">86</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==================&gt;-------------------------------------------]</text><text x="97.194" y="10.354" class="h">31</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">downloading</text><text x="21.042" y="12.525" class="h">114</text><text x="25.05" y="12.525" class="h">/</text><text x="27.054" y="12.525" class="h">114</text><text x="31.062" y="12.525" class="h">[==============================================================]</text><text x="96.192" y="12.525" class="h">100</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[==&gt;-----------------------------------------------------------]</text><text x="98.196" y="14.696" class="h">6</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="4386"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">47</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[==========&gt;---------------------------------------------------]</text><text x="96.192" y="8.183" class="h">18</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">88</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[===================&gt;------------------------------------------]</text><text x="96.192" y="10.354" class="h">32</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="24.048" y="12.525" class="h">00:00</text><text x="30.06" y="12.525" class="h">[=&gt;------------------------------------------------------------]</text><text x="97.194" y="12.525" class="h">3</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="24.048" y="14.696" class="h">00:09</text><text x="30.06" y="14.696" class="h">[====&gt;---------------------------------------------------------]</text><text x="97.194" y="14.696" class="h">7</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="4488"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">50</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[===========&gt;--------------------------------------------------]</text><text x="96.192" y="8.183" class="h">19</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">92</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[====================&gt;-----------------------------------------]</text><text x="96.192" y="10.354" class="h">34</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="24.048" y="12.525" class="h">00:00</text><text x="30.06" y="12.525" class="h">[===&gt;----------------------------------------------------------]</text><text x="97.194" y="12.525" class="h">6</text><text x="99.198" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="24.048" y="14.696" class="h">00:09</text><text x="30.06" y="14.696" class="h">[====&gt;---------------------------------------------------------]</text><text x="97.194" y="14.696" class="h">9</text><text x="99.198" y="14.696" class="h">%</text></svg><svg x="4590"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">52</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[===========&gt;--------------------------------------------------]</text><text x="96.192" y="8.183" class="h">19</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">96</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[=====================&gt;----------------------------------------]</text><text x="96.192" y="10.354" class="h">35</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="24.048" y="12.525" class="h">00:00</text><text x="30.06" y="12.525" class="h">[=====&gt;--------------------------------------------------------]</text><text x="97.194" y="12.525" class="h">9</text><text x="99.198" y="12.525" class="h">%</text><use xlink:href="#7" y="13.026"/></svg><svg x="4692"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">54</text><text x="24.048" y="8.183" class="h">/</text><text x="26.052" y="8.183" class="h">268</text><text x="30.06" y="8.183" class="h">[===========&gt;--------------------------------------------------]</text><text x="96.192" y="8.183" class="h">20</text><text x="99.198" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">98</text><text x="24.048" y="10.354" class="h">/</text><text x="26.052" y="10.354" class="h">274</text><text x="30.06" y="10.354" class="h">[=====================&gt;----------------------------------------]</text><text x="96.192" y="10.354" class="h">36</text><text x="99.198" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="24.048" y="12.525" class="h">00:03</text><text x="30.06" y="12.525" class="h">[========&gt;-----------------------------------------------------]</text><text x="96.192" y="12.525" class="h">14</text><text x="99.198" y="12.525" class="h">%</text><use xlink:href="#7" y="13.026"/></svg><svg x="4794"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">56</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============&gt;-------------------------------------------------]</text><text x="97.194" y="8.183" class="h">21</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">102</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[======================&gt;---------------------------------------]</text><text x="97.194" y="10.354" class="h">37</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:03</text><text x="31.062" y="12.525" class="h">[=========&gt;----------------------------------------------------]</text><text x="97.194" y="12.525" class="h">17</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[=======&gt;------------------------------------------------------]</text><text x="97.194" y="14.696" class="h">12</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="4896"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">57</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============&gt;-------------------------------------------------]</text><text x="97.194" y="8.183" class="h">21</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">106</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=======================&gt;--------------------------------------]</text><text x="97.194" y="10.354" class="h">39</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:03</text><text x="31.062" y="12.525" class="h">[===========&gt;--------------------------------------------------]</text><text x="97.194" y="12.525" class="h">19</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[=======&gt;------------------------------------------------------]</text><text x="97.194" y="14.696" class="h">14</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="4998"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">59</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=============&gt;------------------------------------------------]</text><text x="97.194" y="8.183" class="h">22</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">114</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=========================&gt;------------------------------------]</text><text x="97.194" y="10.354" class="h">42</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:03</text><text x="31.062" y="12.525" class="h">[=============&gt;------------------------------------------------]</text><text x="97.194" y="12.525" class="h">23</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[========&gt;-----------------------------------------------------]</text><text x="97.194" y="14.696" class="h">14</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="5100"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">61</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=============&gt;------------------------------------------------]</text><text x="97.194" y="8.183" class="h">23</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">120</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==========================&gt;-----------------------------------]</text><text x="97.194" y="10.354" class="h">44</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:03</text><text x="31.062" y="12.525" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="12.525" class="h">25</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[=========&gt;----------------------------------------------------]</text><text x="97.194" y="14.696" class="h">16</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="5202"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">63</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============&gt;-----------------------------------------------]</text><text x="97.194" y="8.183" class="h">24</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">126</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[============================&gt;---------------------------------]</text><text x="97.194" y="10.354" class="h">46</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[=================&gt;--------------------------------------------]</text><text x="97.194" y="12.525" class="h">29</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[=========&gt;----------------------------------------------------]</text><text x="97.194" y="14.696" class="h">17</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="5304"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">67</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="8.183" class="h">25</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">130</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[============================&gt;---------------------------------]</text><text x="97.194" y="10.354" class="h">47</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[==================&gt;-------------------------------------------]</text><text x="97.194" y="12.525" class="h">31</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[==========&gt;---------------------------------------------------]</text><text x="97.194" y="14.696" class="h">17</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="5406"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">68</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="8.183" class="h">25</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">132</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=============================&gt;--------------------------------]</text><text x="97.194" y="10.354" class="h">48</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[=====================&gt;----------------------------------------]</text><text x="97.194" y="12.525" class="h">36</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[===========&gt;--------------------------------------------------]</text><text x="97.194" y="14.696" class="h">19</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="5508"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">69</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="8.183" class="h">26</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">136</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==============================&gt;-------------------------------]</text><text x="97.194" y="10.354" class="h">50</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[======================&gt;---------------------------------------]</text><text x="97.194" y="12.525" class="h">37</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:08</text><text x="31.062" y="14.696" class="h">[============&gt;-------------------------------------------------]</text><text x="97.194" y="14.696" class="h">20</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="5610"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">71</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="8.183" class="h">26</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">140</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===============================&gt;------------------------------]</text><text x="97.194" y="10.354" class="h">51</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[========================&gt;-------------------------------------]</text><text x="97.194" y="12.525" class="h">41</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:07</text><text x="31.062" y="14.696" class="h">[============&gt;-------------------------------------------------]</text><text x="97.194" y="14.696" class="h">22</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="5712"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">73</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[================&gt;---------------------------------------------]</text><text x="97.194" y="8.183" class="h">27</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">144</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[================================&gt;-----------------------------]</text><text x="97.194" y="10.354" class="h">53</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[=========================&gt;------------------------------------]</text><text x="97.194" y="12.525" class="h">42</text><text x="100.2" y="12.525" class="h">%</text><use xlink:href="#8" y="13.026"/></svg><svg x="5814"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">75</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[================&gt;---------------------------------------------]</text><text x="97.194" y="8.183" class="h">28</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">150</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=================================&gt;----------------------------]</text><text x="97.194" y="10.354" class="h">55</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[===========================&gt;----------------------------------]</text><text x="97.194" y="12.525" class="h">45</text><text x="100.2" y="12.525" class="h">%</text><use xlink:href="#8" y="13.026"/></svg><svg x="5916"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">78</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=================&gt;--------------------------------------------]</text><text x="97.194" y="8.183" class="h">29</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">154</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==================================&gt;---------------------------]</text><text x="97.194" y="10.354" class="h">56</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[============================&gt;---------------------------------]</text><text x="97.194" y="12.525" class="h">47</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:07</text><text x="31.062" y="14.696" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="14.696" class="h">26</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6018"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">80</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==================&gt;-------------------------------------------]</text><text x="97.194" y="8.183" class="h">30</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">158</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===================================&gt;--------------------------]</text><text x="97.194" y="10.354" class="h">58</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[==============================&gt;-------------------------------]</text><text x="97.194" y="12.525" class="h">50</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:07</text><text x="31.062" y="14.696" class="h">[================&gt;---------------------------------------------]</text><text x="97.194" y="14.696" class="h">27</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6120"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">82</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==================&gt;-------------------------------------------]</text><text x="97.194" y="8.183" class="h">31</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">162</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[====================================&gt;-------------------------]</text><text x="97.194" y="10.354" class="h">59</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:02</text><text x="31.062" y="12.525" class="h">[===============================&gt;------------------------------]</text><text x="97.194" y="12.525" class="h">51</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:06</text><text x="31.062" y="14.696" class="h">[=================&gt;--------------------------------------------]</text><text x="97.194" y="14.696" class="h">29</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6222"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">87</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===================&gt;------------------------------------------]</text><text x="97.194" y="8.183" class="h">32</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">164</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[====================================&gt;-------------------------]</text><text x="97.194" y="10.354" class="h">60</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:01</text><text x="31.062" y="12.525" class="h">[==================================&gt;---------------------------]</text><text x="97.194" y="12.525" class="h">56</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:06</text><text x="31.062" y="14.696" class="h">[==================&gt;-------------------------------------------]</text><text x="97.194" y="14.696" class="h">31</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6324"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">90</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[====================&gt;-----------------------------------------]</text><text x="97.194" y="8.183" class="h">34</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">166</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=====================================&gt;------------------------]</text><text x="97.194" y="10.354" class="h">61</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:01</text><text x="31.062" y="12.525" class="h">[====================================&gt;-------------------------]</text><text x="97.194" y="12.525" class="h">60</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:06</text><text x="31.062" y="14.696" class="h">[===================&gt;------------------------------------------]</text><text x="97.194" y="14.696" class="h">32</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6426"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">92</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[====================&gt;-----------------------------------------]</text><text x="97.194" y="8.183" class="h">34</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">172</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[======================================&gt;-----------------------]</text><text x="97.194" y="10.354" class="h">63</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:01</text><text x="31.062" y="12.525" class="h">[======================================&gt;-----------------------]</text><text x="97.194" y="12.525" class="h">62</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[====================&gt;-----------------------------------------]</text><text x="97.194" y="14.696" class="h">34</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6528"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">93</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=====================&gt;----------------------------------------]</text><text x="97.194" y="8.183" class="h">35</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">176</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=======================================&gt;----------------------]</text><text x="97.194" y="10.354" class="h">64</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:01</text><text x="31.062" y="12.525" class="h">[=======================================&gt;----------------------]</text><text x="97.194" y="12.525" class="h">65</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[=====================&gt;----------------------------------------]</text><text x="97.194" y="14.696" class="h">35</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6630"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">96</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=====================&gt;----------------------------------------]</text><text x="97.194" y="8.183" class="h">36</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">178</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=======================================&gt;----------------------]</text><text x="97.194" y="10.354" class="h">65</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:01</text><text x="31.062" y="12.525" class="h">[==========================================&gt;-------------------]</text><text x="97.194" y="12.525" class="h">69</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[=====================&gt;----------------------------------------]</text><text x="97.194" y="14.696" class="h">36</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6732"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="22.044" y="8.183" class="h">99</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[======================&gt;---------------------------------------]</text><text x="97.194" y="8.183" class="h">37</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">182</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[========================================&gt;---------------------]</text><text x="97.194" y="10.354" class="h">66</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:01</text><text x="31.062" y="12.525" class="h">[===========================================&gt;------------------]</text><text x="97.194" y="12.525" class="h">71</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[======================&gt;---------------------------------------]</text><text x="97.194" y="14.696" class="h">37</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6834"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">102</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=======================&gt;--------------------------------------]</text><text x="97.194" y="8.183" class="h">38</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">186</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=========================================&gt;--------------------]</text><text x="97.194" y="10.354" class="h">68</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[==============================================&gt;---------------]</text><text x="97.194" y="12.525" class="h">75</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:06</text><text x="31.062" y="14.696" class="h">[======================&gt;---------------------------------------]</text><text x="97.194" y="14.696" class="h">37</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="6936"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">105</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=======================&gt;--------------------------------------]</text><text x="97.194" y="8.183" class="h">39</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">188</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==========================================&gt;-------------------]</text><text x="97.194" y="10.354" class="h">69</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[===============================================&gt;--------------]</text><text x="97.194" y="12.525" class="h">78</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:06</text><text x="31.062" y="14.696" class="h">[=======================&gt;--------------------------------------]</text><text x="97.194" y="14.696" class="h">39</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7038"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">107</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[========================&gt;-------------------------------------]</text><text x="97.194" y="8.183" class="h">40</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">192</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==========================================&gt;-------------------]</text><text x="97.194" y="10.354" class="h">70</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[=================================================&gt;------------]</text><text x="97.194" y="12.525" class="h">80</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[========================&gt;-------------------------------------]</text><text x="97.194" y="14.696" class="h">40</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7140"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">109</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[========================&gt;-------------------------------------]</text><text x="97.194" y="8.183" class="h">41</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">194</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===========================================&gt;------------------]</text><text x="97.194" y="10.354" class="h">71</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[==================================================&gt;-----------]</text><text x="97.194" y="12.525" class="h">82</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[========================&gt;-------------------------------------]</text><text x="97.194" y="14.696" class="h">41</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7242"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">112</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========================&gt;------------------------------------]</text><text x="97.194" y="8.183" class="h">42</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">198</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[============================================&gt;-----------------]</text><text x="97.194" y="10.354" class="h">72</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[===================================================&gt;----------]</text><text x="97.194" y="12.525" class="h">84</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[=========================&gt;------------------------------------]</text><text x="97.194" y="14.696" class="h">42</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7344"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">114</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========================&gt;------------------------------------]</text><text x="97.194" y="8.183" class="h">43</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">202</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=============================================&gt;----------------]</text><text x="97.194" y="10.354" class="h">74</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="12.525" class="h">88</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:05</text><text x="31.062" y="14.696" class="h">[==========================&gt;-----------------------------------]</text><text x="97.194" y="14.696" class="h">44</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7446"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">116</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==========================&gt;-----------------------------------]</text><text x="97.194" y="8.183" class="h">43</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">206</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==============================================&gt;---------------]</text><text x="97.194" y="10.354" class="h">75</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[========================================================&gt;-----]</text><text x="97.194" y="12.525" class="h">92</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:04</text><text x="31.062" y="14.696" class="h">[===========================&gt;----------------------------------]</text><text x="97.194" y="14.696" class="h">46</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7548"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">119</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===========================&gt;----------------------------------]</text><text x="97.194" y="8.183" class="h">44</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">210</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===============================================&gt;--------------]</text><text x="97.194" y="10.354" class="h">77</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[=========================================================&gt;----]</text><text x="97.194" y="12.525" class="h">94</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:04</text><text x="31.062" y="14.696" class="h">[=============================&gt;--------------------------------]</text><text x="97.194" y="14.696" class="h">48</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7650"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">122</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===========================&gt;----------------------------------]</text><text x="97.194" y="8.183" class="h">46</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">212</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===============================================&gt;--------------]</text><text x="97.194" y="10.354" class="h">77</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[===========================================================&gt;--]</text><text x="97.194" y="12.525" class="h">97</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:04</text><text x="31.062" y="14.696" class="h">[=============================&gt;--------------------------------]</text><text x="97.194" y="14.696" class="h">49</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7752"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">124</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============================&gt;---------------------------------]</text><text x="97.194" y="8.183" class="h">46</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">214</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===============================================&gt;--------------]</text><text x="97.194" y="10.354" class="h">78</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[==============================================================]</text><text x="97.194" y="12.525" class="h">99</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:04</text><text x="31.062" y="14.696" class="h">[==============================&gt;-------------------------------]</text><text x="97.194" y="14.696" class="h">50</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7854"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">126</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============================&gt;---------------------------------]</text><text x="97.194" y="8.183" class="h">47</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">218</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[================================================&gt;-------------]</text><text x="97.194" y="10.354" class="h">80</text><text x="100.2" y="10.354" class="h">%</text><text y="12.525" class="h">Task#02:</text><text x="9.018" y="12.525" class="h">installing</text><text x="25.05" y="12.525" class="h">00:00</text><text x="31.062" y="12.525" class="h">[==============================================================]</text><text x="96.192" y="12.525" class="h">100</text><text x="100.2" y="12.525" class="h">%</text><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:04</text><text x="31.062" y="14.696" class="h">[===============================&gt;------------------------------]</text><text x="97.194" y="14.696" class="h">52</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="7956"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">127</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============================&gt;---------------------------------]</text><text x="97.194" y="8.183" class="h">47</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">220</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=================================================&gt;------------]</text><text x="97.194" y="10.354" class="h">80</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:04</text><text x="31.062" y="14.696" class="h">[================================&gt;-----------------------------]</text><text x="97.194" y="14.696" class="h">53</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8058"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">130</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=============================&gt;--------------------------------]</text><text x="97.194" y="8.183" class="h">49</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">224</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==================================================&gt;-----------]</text><text x="97.194" y="10.354" class="h">82</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:03</text><text x="31.062" y="14.696" class="h">[=================================&gt;----------------------------]</text><text x="97.194" y="14.696" class="h">55</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8160"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">132</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============================&gt;-------------------------------]</text><text x="97.194" y="8.183" class="h">49</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">230</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[===================================================&gt;----------]</text><text x="97.194" y="10.354" class="h">84</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:03</text><text x="31.062" y="14.696" class="h">[==================================&gt;---------------------------]</text><text x="97.194" y="14.696" class="h">57</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8262"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">134</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============================&gt;-------------------------------]</text><text x="97.194" y="8.183" class="h">50</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">234</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[====================================================&gt;---------]</text><text x="97.194" y="10.354" class="h">85</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:03</text><text x="31.062" y="14.696" class="h">[====================================&gt;-------------------------]</text><text x="97.194" y="14.696" class="h">59</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8364"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">136</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============================&gt;-------------------------------]</text><text x="97.194" y="8.183" class="h">51</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">238</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="10.354" class="h">87</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:03</text><text x="31.062" y="14.696" class="h">[====================================&gt;-------------------------]</text><text x="97.194" y="14.696" class="h">60</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8466"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">139</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===============================&gt;------------------------------]</text><text x="97.194" y="8.183" class="h">52</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">242</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[======================================================&gt;-------]</text><text x="97.194" y="10.354" class="h">88</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:03</text><text x="31.062" y="14.696" class="h">[=====================================&gt;------------------------]</text><text x="97.194" y="14.696" class="h">61</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8568"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">141</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[================================&gt;-----------------------------]</text><text x="97.194" y="8.183" class="h">53</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">246</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=======================================================&gt;------]</text><text x="97.194" y="10.354" class="h">90</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:03</text><text x="31.062" y="14.696" class="h">[======================================&gt;-----------------------]</text><text x="97.194" y="14.696" class="h">63</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8670"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">143</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[================================&gt;-----------------------------]</text><text x="97.194" y="8.183" class="h">53</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">254</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[========================================================&gt;-----]</text><text x="97.194" y="10.354" class="h">93</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[=======================================&gt;----------------------]</text><text x="97.194" y="14.696" class="h">65</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8772"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">147</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=================================&gt;----------------------------]</text><text x="97.194" y="8.183" class="h">55</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">258</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[=========================================================&gt;----]</text><text x="97.194" y="10.354" class="h">94</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[========================================&gt;---------------------]</text><text x="97.194" y="14.696" class="h">66</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8874"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">149</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=================================&gt;----------------------------]</text><text x="97.194" y="8.183" class="h">56</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">262</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==========================================================&gt;---]</text><text x="97.194" y="10.354" class="h">96</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[=========================================&gt;--------------------]</text><text x="97.194" y="14.696" class="h">68</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="8976"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">150</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==================================&gt;---------------------------]</text><text x="97.194" y="8.183" class="h">56</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">268</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[============================================================&gt;-]</text><text x="97.194" y="10.354" class="h">98</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[==========================================&gt;-------------------]</text><text x="97.194" y="14.696" class="h">69</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9078"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">152</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==================================&gt;---------------------------]</text><text x="97.194" y="8.183" class="h">57</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">272</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==============================================================]</text><text x="97.194" y="10.354" class="h">99</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[===========================================&gt;------------------]</text><text x="97.194" y="14.696" class="h">70</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9180"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">156</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===================================&gt;--------------------------]</text><text x="97.194" y="8.183" class="h">58</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">downloading</text><text x="21.042" y="10.354" class="h">274</text><text x="25.05" y="10.354" class="h">/</text><text x="27.054" y="10.354" class="h">274</text><text x="31.062" y="10.354" class="h">[==============================================================]</text><text x="96.192" y="10.354" class="h">100</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[===========================================&gt;------------------]</text><text x="97.194" y="14.696" class="h">71</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9282"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">160</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[====================================&gt;-------------------------]</text><text x="97.194" y="8.183" class="h">60</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[==&gt;-----------------------------------------------------------]</text><text x="98.196" y="10.354" class="h">5</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[============================================&gt;-----------------]</text><text x="97.194" y="14.696" class="h">73</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9384"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">162</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[====================================&gt;-------------------------]</text><text x="97.194" y="8.183" class="h">60</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[====&gt;---------------------------------------------------------]</text><text x="98.196" y="10.354" class="h">8</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[=============================================&gt;----------------]</text><text x="97.194" y="14.696" class="h">74</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9486"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">163</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=====================================&gt;------------------------]</text><text x="97.194" y="8.183" class="h">61</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[=======&gt;------------------------------------------------------]</text><text x="97.194" y="10.354" class="h">14</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[=============================================&gt;----------------]</text><text x="97.194" y="14.696" class="h">75</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9588"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">168</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[======================================&gt;-----------------------]</text><text x="97.194" y="8.183" class="h">63</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[==========&gt;---------------------------------------------------]</text><text x="97.194" y="10.354" class="h">17</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[==============================================&gt;---------------]</text><text x="97.194" y="14.696" class="h">76</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9690"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">170</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[======================================&gt;-----------------------]</text><text x="97.194" y="8.183" class="h">63</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:02</text><text x="31.062" y="10.354" class="h">[============&gt;-------------------------------------------------]</text><text x="97.194" y="10.354" class="h">20</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:02</text><text x="31.062" y="14.696" class="h">[===============================================&gt;--------------]</text><text x="97.194" y="14.696" class="h">77</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9792"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">173</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=======================================&gt;----------------------]</text><text x="97.194" y="8.183" class="h">65</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:02</text><text x="31.062" y="10.354" class="h">[===============&gt;----------------------------------------------]</text><text x="97.194" y="10.354" class="h">25</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[================================================&gt;-------------]</text><text x="97.194" y="14.696" class="h">78</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9894"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">176</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[========================================&gt;---------------------]</text><text x="97.194" y="8.183" class="h">66</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:02</text><text x="31.062" y="10.354" class="h">[==================&gt;-------------------------------------------]</text><text x="97.194" y="10.354" class="h">31</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[================================================&gt;-------------]</text><text x="97.194" y="14.696" class="h">79</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="9996"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">178</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[========================================&gt;---------------------]</text><text x="97.194" y="8.183" class="h">66</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[=====================&gt;----------------------------------------]</text><text x="97.194" y="10.354" class="h">36</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[=================================================&gt;------------]</text><text x="97.194" y="14.696" class="h">81</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10098"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">180</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========================================&gt;--------------------]</text><text x="97.194" y="8.183" class="h">67</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[======================&gt;---------------------------------------]</text><text x="97.194" y="10.354" class="h">37</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[==================================================&gt;-----------]</text><text x="97.194" y="14.696" class="h">83</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10200"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">182</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========================================&gt;--------------------]</text><text x="97.194" y="8.183" class="h">68</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[========================&gt;-------------------------------------]</text><text x="97.194" y="10.354" class="h">41</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[===================================================&gt;----------]</text><text x="97.194" y="14.696" class="h">83</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10302"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">185</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==========================================&gt;-------------------]</text><text x="97.194" y="8.183" class="h">69</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[=========================&gt;------------------------------------]</text><text x="97.194" y="10.354" class="h">42</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[===================================================&gt;----------]</text><text x="97.194" y="14.696" class="h">84</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10404"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">188</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==========================================&gt;-------------------]</text><text x="97.194" y="8.183" class="h">70</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[===========================&gt;----------------------------------]</text><text x="97.194" y="10.354" class="h">46</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[====================================================&gt;---------]</text><text x="97.194" y="14.696" class="h">85</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10506"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">190</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===========================================&gt;------------------]</text><text x="97.194" y="8.183" class="h">71</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[=============================&gt;--------------------------------]</text><text x="97.194" y="10.354" class="h">49</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="14.696" class="h">87</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10608"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">192</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===========================================&gt;------------------]</text><text x="97.194" y="8.183" class="h">72</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[================================&gt;-----------------------------]</text><text x="97.194" y="10.354" class="h">53</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:01</text><text x="31.062" y="14.696" class="h">[======================================================&gt;-------]</text><text x="97.194" y="14.696" class="h">88</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10710"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">194</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============================================&gt;-----------------]</text><text x="97.194" y="8.183" class="h">72</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[=================================&gt;----------------------------]</text><text x="97.194" y="10.354" class="h">54</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[======================================================&gt;-------]</text><text x="97.194" y="14.696" class="h">89</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10812"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">197</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=============================================&gt;----------------]</text><text x="97.194" y="8.183" class="h">74</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[===================================&gt;--------------------------]</text><text x="97.194" y="10.354" class="h">58</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[=======================================================&gt;------]</text><text x="97.194" y="14.696" class="h">91</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="10914"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">198</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=============================================&gt;----------------]</text><text x="97.194" y="8.183" class="h">74</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[=====================================&gt;------------------------]</text><text x="97.194" y="10.354" class="h">61</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[========================================================&gt;-----]</text><text x="97.194" y="14.696" class="h">93</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="11016"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">202</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============================================&gt;---------------]</text><text x="97.194" y="8.183" class="h">75</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[======================================&gt;-----------------------]</text><text x="97.194" y="10.354" class="h">63</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[=========================================================&gt;----]</text><text x="97.194" y="14.696" class="h">93</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="11118"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">204</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============================================&gt;---------------]</text><text x="97.194" y="8.183" class="h">76</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[========================================&gt;---------------------]</text><text x="97.194" y="10.354" class="h">66</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[==========================================================&gt;---]</text><text x="97.194" y="14.696" class="h">94</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="11220"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">206</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===============================================&gt;--------------]</text><text x="97.194" y="8.183" class="h">77</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:01</text><text x="31.062" y="10.354" class="h">[==========================================&gt;-------------------]</text><text x="97.194" y="10.354" class="h">69</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[===========================================================&gt;--]</text><text x="97.194" y="14.696" class="h">97</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="11322"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">209</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===============================================&gt;--------------]</text><text x="97.194" y="8.183" class="h">78</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[============================================&gt;-----------------]</text><text x="97.194" y="10.354" class="h">73</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[===========================================================&gt;--]</text><text x="97.194" y="14.696" class="h">98</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="11424"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">212</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[================================================&gt;-------------]</text><text x="97.194" y="8.183" class="h">79</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[==============================================&gt;---------------]</text><text x="97.194" y="10.354" class="h">76</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[============================================================&gt;-]</text><text x="97.194" y="14.696" class="h">99</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="11526"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">213</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[================================================&gt;-------------]</text><text x="97.194" y="8.183" class="h">79</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[================================================&gt;-------------]</text><text x="97.194" y="10.354" class="h">80</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><text y="14.696" class="h">Task#03:</text><text x="9.018" y="14.696" class="h">installing</text><text x="25.05" y="14.696" class="h">00:00</text><text x="31.062" y="14.696" class="h">[==============================================================]</text><text x="96.192" y="14.696" class="h">100</text><text x="100.2" y="14.696" class="h">%</text></svg><svg x="11628"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">215</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=================================================&gt;------------]</text><text x="97.194" y="8.183" class="h">80</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[=================================================&gt;------------]</text><text x="97.194" y="10.354" class="h">81</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="11730"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">217</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=================================================&gt;------------]</text><text x="97.194" y="8.183" class="h">81</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="10.354" class="h">86</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="11832"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">219</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==================================================&gt;-----------]</text><text x="97.194" y="8.183" class="h">82</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[======================================================&gt;-------]</text><text x="97.194" y="10.354" class="h">88</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="11934"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">220</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==================================================&gt;-----------]</text><text x="97.194" y="8.183" class="h">82</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[========================================================&gt;-----]</text><text x="97.194" y="10.354" class="h">92</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12036"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">221</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==================================================&gt;-----------]</text><text x="97.194" y="8.183" class="h">82</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[=========================================================&gt;----]</text><text x="97.194" y="10.354" class="h">93</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12138"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">225</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===================================================&gt;----------]</text><text x="97.194" y="8.183" class="h">84</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[===========================================================&gt;--]</text><text x="97.194" y="10.354" class="h">97</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12240"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">227</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[====================================================&gt;---------]</text><text x="97.194" y="8.183" class="h">85</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[============================================================&gt;-]</text><text x="97.194" y="10.354" class="h">98</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12342"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">229</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[====================================================&gt;---------]</text><text x="97.194" y="8.183" class="h">85</text><text x="100.2" y="8.183" class="h">%</text><text y="10.354" class="h">Task#01:</text><text x="9.018" y="10.354" class="h">installing</text><text x="25.05" y="10.354" class="h">00:00</text><text x="31.062" y="10.354" class="h">[==============================================================]</text><text x="96.192" y="10.354" class="h">100</text><text x="100.2" y="10.354" class="h">%</text><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12444"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">230</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[====================================================&gt;---------]</text><text x="97.194" y="8.183" class="h">86</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12546"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">232</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="8.183" class="h">87</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12648"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">233</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="8.183" class="h">87</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12750"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">235</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=====================================================&gt;--------]</text><text x="97.194" y="8.183" class="h">88</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12852"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">236</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[======================================================&gt;-------]</text><text x="97.194" y="8.183" class="h">88</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="12954"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">237</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[======================================================&gt;-------]</text><text x="97.194" y="8.183" class="h">88</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13056"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">240</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=======================================================&gt;------]</text><text x="97.194" y="8.183" class="h">90</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13158"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">241</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=======================================================&gt;------]</text><text x="97.194" y="8.183" class="h">90</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13260"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">244</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=======================================================&gt;------]</text><text x="97.194" y="8.183" class="h">91</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13362"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">246</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[========================================================&gt;-----]</text><text x="97.194" y="8.183" class="h">92</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13464"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">249</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========================================================&gt;----]</text><text x="97.194" y="8.183" class="h">93</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13566"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">251</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[=========================================================&gt;----]</text><text x="97.194" y="8.183" class="h">94</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13668"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">253</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==========================================================&gt;---]</text><text x="97.194" y="8.183" class="h">94</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13770"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">256</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==========================================================&gt;---]</text><text x="97.194" y="8.183" class="h">96</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13872"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">257</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==========================================================&gt;---]</text><text x="97.194" y="8.183" class="h">96</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="13974"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">259</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===========================================================&gt;--]</text><text x="97.194" y="8.183" class="h">97</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14076"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">261</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[===========================================================&gt;--]</text><text x="97.194" y="8.183" class="h">97</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14178"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">262</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============================================================&gt;-]</text><text x="97.194" y="8.183" class="h">98</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14280"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">263</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[============================================================&gt;-]</text><text x="97.194" y="8.183" class="h">98</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14382"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">266</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============================================================]</text><text x="97.194" y="8.183" class="h">99</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14484"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">downloading</text><text x="21.042" y="8.183" class="h">268</text><text x="25.05" y="8.183" class="h">/</text><text x="27.054" y="8.183" class="h">268</text><text x="31.062" y="8.183" class="h">[==============================================================]</text><text x="96.192" y="8.183" class="h">100</text><text x="100.2" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14586"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[=&gt;------------------------------------------------------------]</text><text x="93.186" y="8.183" class="h">3</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14688"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[======&gt;-------------------------------------------------------]</text><text x="92.184" y="8.183" class="h">12</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14790"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[========&gt;-----------------------------------------------------]</text><text x="92.184" y="8.183" class="h">14</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14892"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[============&gt;-------------------------------------------------]</text><text x="92.184" y="8.183" class="h">20</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="14994"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[=================&gt;--------------------------------------------]</text><text x="92.184" y="8.183" class="h">29</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15096"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:01</text><text x="26.052" y="8.183" class="h">[===================&gt;------------------------------------------]</text><text x="92.184" y="8.183" class="h">32</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15198"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:01</text><text x="26.052" y="8.183" class="h">[==========================&gt;-----------------------------------]</text><text x="92.184" y="8.183" class="h">43</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15300"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:01</text><text x="26.052" y="8.183" class="h">[==============================&gt;-------------------------------]</text><text x="92.184" y="8.183" class="h">49</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15402"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[=================================&gt;----------------------------]</text><text x="92.184" y="8.183" class="h">55</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15504"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[=====================================&gt;------------------------]</text><text x="92.184" y="8.183" class="h">61</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15606"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[========================================&gt;---------------------]</text><text x="92.184" y="8.183" class="h">67</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15708"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[============================================&gt;-----------------]</text><text x="92.184" y="8.183" class="h">72</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15810"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[=================================================&gt;------------]</text><text x="92.184" y="8.183" class="h">81</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="15912"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[=====================================================&gt;--------]</text><text x="92.184" y="8.183" class="h">87</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="16014"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[=========================================================&gt;----]</text><text x="92.184" y="8.183" class="h">93</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="16116"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[============================================================&gt;-]</text><text x="92.184" y="8.183" class="h">99</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="16218"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><text y="8.183" class="h">Task#00:</text><text x="9.018" y="8.183" class="h">installing</text><text x="20.04" y="8.183" class="h">00:00</text><text x="26.052" y="8.183" class="h">[==============================================================]</text><text x="91.182" y="8.183" class="h">100</text><text x="95.19" y="8.183" class="h">%</text><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="16320"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#12" y="6.513"/><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="16422"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="15.172"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#12" y="6.513"/><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="16524"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="17.343"/><use xlink:href="#3" y="2.171"/><use xlink:href="#6" y="4.342"/><use xlink:href="#12" y="6.513"/><use xlink:href="#11" y="8.684"/><use xlink:href="#9" y="10.855"/><use xlink:href="#10" y="13.026"/></svg><svg x="16626"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="17.343"/><use xlink:href="#3"/><use xlink:href="#6" y="2.171"/><use xlink:href="#12" y="4.342"/><use xlink:href="#11" y="6.513"/><use xlink:href="#9" y="8.684"/><use xlink:href="#10" y="10.855"/><use xlink:href="#13" y="15.197"/><use xlink:href="#2" y="17.368"/></svg><svg x="16728"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="17.343"/><use xlink:href="#3"/><use xlink:href="#6" y="2.171"/><use xlink:href="#12" y="4.342"/><use xlink:href="#11" y="6.513"/><use xlink:href="#9" y="8.684"/><use xlink:href="#10" y="10.855"/><use xlink:href="#13" y="15.197"/><use xlink:href="#2" y="17.368"/></svg><svg x="16830"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="17.343"/><use xlink:href="#3"/><use xlink:href="#6" y="2.171"/><use xlink:href="#12" y="4.342"/><use xlink:href="#11" y="6.513"/><use xlink:href="#9" y="8.684"/><use xlink:href="#10" y="10.855"/><use xlink:href="#13" y="15.197"/><use xlink:href="#2" y="17.368"/></svg><svg x="16932"><use xlink:href="#a"/><use xlink:href="#b" x="1.996" y="17.343"/><use xlink:href="#3"/><use xlink:href="#6" y="2.171"/><use xlink:href="#12" y="4.342"/><use xlink:href="#11" y="6.513"/><use xlink:href="#9" y="8.684"/><use xlink:href="#10" y="10.855"/><use xlink:href="#13" y="15.197"/><use xlink:href="#2" y="17.368"/></svg><svg x="17034"><use xlink:href="#a"/><use xlink:href="#b" x="-.004" y="17.343"/><use xlink:href="#6"/><use xlink:href="#12" y="2.171"/><use xlink:href="#11" y="4.342"/><use xlink:href="#9" y="6.513"/><use xlink:href="#10" y="8.684"/><use xlink:href="#13" y="13.026"/><use xlink:href="#2" y="15.197"/></svg></svg></g></g></svg></svg>
0 package main
1
2 import (
3 "fmt"
4 "io"
5 "log"
6 "net/http"
7 "os"
8 "path/filepath"
9 "sync"
10
11 "github.com/vbauerster/mpb"
12 "github.com/vbauerster/mpb/decor"
13 )
14
15 func main() {
16 log.SetOutput(os.Stderr)
17
18 url1 := "https://homebrew.bintray.com/bottles/youtube-dl-2016.12.12.sierra.bottle.tar.gz"
19 url2 := "https://homebrew.bintray.com/bottles/libtiff-4.0.7.sierra.bottle.tar.gz"
20
21 var wg sync.WaitGroup
22 p := mpb.New(mpb.WithWidth(64), mpb.WithWaitGroup(&wg))
23
24 for i, url := range [...]string{url1, url2} {
25 wg.Add(1)
26 name := fmt.Sprintf("url%d:", i+1)
27 go download(&wg, p, name, url, i)
28 }
29
30 p.Wait()
31 }
32
33 func download(wg *sync.WaitGroup, p *mpb.Progress, name, url string, n int) {
34 defer wg.Done()
35 resp, err := http.Get(url)
36 if err != nil {
37 log.Printf("%s: %v", name, err)
38 return
39 }
40 defer resp.Body.Close()
41
42 if resp.StatusCode != http.StatusOK {
43 err = fmt.Errorf("non-200 status: %s", resp.Status)
44 log.Printf("%s: %v", name, err)
45 return
46 }
47
48 size := resp.ContentLength
49
50 // create dest
51 destName := filepath.Base(url)
52 dest, err := os.Create(destName)
53 if err != nil {
54 err = fmt.Errorf("Can't create %s: %v", destName, err)
55 log.Printf("%s: %v", name, err)
56 return
57 }
58
59 // create bar with appropriate decorators
60 bar := p.AddBar(size, mpb.BarPriority(n),
61 mpb.PrependDecorators(
62 decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}),
63 decor.CountersKibiByte("%6.1f / %6.1f", decor.WCSyncWidth),
64 ),
65 mpb.AppendDecorators(
66 decor.EwmaETA(decor.ET_STYLE_HHMMSS, 1024*4, decor.WCSyncWidth),
67 decor.AverageSpeed(decor.UnitKiB, "% .2f"),
68 ),
69 )
70
71 // create proxy reader
72 reader := bar.ProxyReader(resp.Body)
73 // and copy from reader
74 _, err = io.Copy(dest, reader)
75
76 if e := dest.Close(); err == nil {
77 err = e
78 }
79 if err != nil {
80 log.Printf("%s: %v", name, err)
81 }
82 }
0 package main
1
2 import (
3 "fmt"
4 "io"
5 "net/http"
6 "os"
7 "path/filepath"
8 "time"
9
10 "github.com/vbauerster/mpb"
11 "github.com/vbauerster/mpb/decor"
12 )
13
14 func main() {
15 url := "https://github.com/onivim/oni/releases/download/v0.3.4/Oni-0.3.4-amd64-linux.deb"
16
17 resp, err := http.Get(url)
18 if err != nil {
19 panic(err)
20 }
21 defer resp.Body.Close()
22
23 if resp.StatusCode != http.StatusOK {
24 fmt.Printf("Server return non-200 status: %s\n", resp.Status)
25 return
26 }
27
28 size := resp.ContentLength
29
30 // create dest
31 destName := filepath.Base(url)
32 dest, err := os.Create(destName)
33 if err != nil {
34 fmt.Printf("Can't create %s: %v\n", destName, err)
35 return
36 }
37 defer dest.Close()
38
39 p := mpb.New(
40 mpb.WithWidth(60),
41 mpb.WithRefreshRate(180*time.Millisecond),
42 )
43
44 bar := p.AddBar(size, mpb.BarStyle("[=>-|"),
45 mpb.PrependDecorators(
46 decor.CountersKibiByte("% 6.1f / % 6.1f"),
47 ),
48 mpb.AppendDecorators(
49 decor.EwmaETA(decor.ET_STYLE_MMSS, float64(size)/2048),
50 decor.Name(" ] "),
51 decor.AverageSpeed(decor.UnitKiB, "% .2f"),
52 ),
53 )
54
55 // create proxy reader
56 reader := bar.ProxyReader(resp.Body)
57
58 // and copy from reader, ignoring errors
59 io.Copy(dest, reader)
60
61 p.Wait()
62 }
0 package main
1
2 import (
3 "fmt"
4 "os"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 func main() {
13 var wg sync.WaitGroup
14 p := mpb.New(mpb.WithWaitGroup(&wg), mpb.WithDebugOutput(os.Stderr))
15
16 wantPanic := "Some really long panic panic panic panic panic panic panic, really it is very long"
17 numBars := 3
18 wg.Add(numBars)
19
20 for i := 0; i < numBars; i++ {
21 name := fmt.Sprintf("b#%02d:", i)
22 bar := p.AddBar(100, mpb.BarID(i), mpb.PrependDecorators(panicDecorator(name, wantPanic)))
23
24 go func() {
25 defer wg.Done()
26 for i := 0; i < 100; i++ {
27 time.Sleep(50 * time.Millisecond)
28 bar.Increment()
29 }
30 }()
31 }
32
33 p.Wait()
34 }
35
36 func panicDecorator(name, panicMsg string) decor.Decorator {
37 d := &decorator{
38 msg: name,
39 panicMsg: panicMsg,
40 }
41 d.Init()
42 return d
43 }
44
45 type decorator struct {
46 decor.WC
47 msg string
48 panicMsg string
49 }
50
51 func (d *decorator) Decor(st *decor.Statistics) string {
52 if st.ID == 1 && st.Current >= 42 {
53 panic(d.panicMsg)
54 }
55 return d.FormatMsg(d.msg)
56 }
0 package main
1
2 import (
3 "fmt"
4 "math/rand"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 func init() {
13 rand.Seed(time.Now().UnixNano())
14 }
15
16 func main() {
17 var wg sync.WaitGroup
18 p := mpb.New(mpb.WithWaitGroup(&wg))
19 total := 100
20 numBars := 3
21 wg.Add(numBars)
22
23 for i := 0; i < numBars; i++ {
24 name := fmt.Sprintf("Bar#%d:", i)
25 b := p.AddBar(int64(total), mpb.BarID(i),
26 mpb.OptionOnCondition(mpb.BarRemoveOnComplete(), func() bool { return i == 0 }),
27 mpb.PrependDecorators(
28 decor.Name(name),
29 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WCSyncSpace),
30 ),
31 mpb.AppendDecorators(decor.Percentage()),
32 )
33 go func() {
34 defer wg.Done()
35 max := 100 * time.Millisecond
36 for i := 0; i < total; i++ {
37 start := time.Now()
38 if b.ID() == 2 && i == 42 {
39 p.Abort(b, true)
40 return
41 }
42 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
43 // ewma based decorators require work duration measurement
44 b.IncrBy(1, time.Since(start))
45 }
46 }()
47 }
48
49 p.Wait()
50 }
0 package main
1
2 import (
3 "fmt"
4 "math/rand"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 func init() {
13 rand.Seed(time.Now().UnixNano())
14 }
15
16 func main() {
17 var wg sync.WaitGroup
18 p := mpb.New(mpb.WithWaitGroup(&wg))
19 total, numBars := 100, 3
20 wg.Add(numBars)
21
22 for i := 0; i < numBars; i++ {
23 name := fmt.Sprintf("Bar#%d:", i)
24 bar := p.AddBar(int64(total),
25 mpb.PrependDecorators(
26 // simple name decorator
27 decor.Name(name),
28 // decor.DSyncWidth bit enables column width synchronization
29 decor.Percentage(decor.WCSyncSpace),
30 ),
31 mpb.AppendDecorators(
32 // replace ETA decorator with "done" message, OnComplete event
33 decor.OnComplete(
34 // ETA decorator with ewma age of 60
35 decor.EwmaETA(decor.ET_STYLE_GO, 60), "done",
36 ),
37 ),
38 )
39 // simulating some work
40 go func() {
41 defer wg.Done()
42 max := 100 * time.Millisecond
43 for i := 0; i < total; i++ {
44 start := time.Now()
45 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
46 // ewma based decorators require work duration measurement
47 bar.IncrBy(1, time.Since(start))
48 }
49 }()
50 }
51 // wait for all bars to complete and flush
52 p.Wait()
53 }
0 package main
1
2 import (
3 "math/rand"
4 "time"
5
6 "github.com/vbauerster/mpb"
7 "github.com/vbauerster/mpb/decor"
8 )
9
10 func main() {
11 p := mpb.New(
12 // override default (80) width
13 mpb.WithWidth(64),
14 // override default 120ms refresh rate
15 mpb.WithRefreshRate(180*time.Millisecond),
16 )
17
18 total := 100
19 name := "Single Bar:"
20 // adding a single bar
21 bar := p.AddBar(int64(total),
22 // override default "[=>-]" style
23 mpb.BarStyle("╢▌▌░╟"),
24 mpb.PrependDecorators(
25 // display our name with one space on the right
26 decor.Name(name, decor.WC{W: len(name) + 1, C: decor.DidentRight}),
27 // replace ETA decorator with "done" message, OnComplete event
28 decor.OnComplete(
29 // ETA decorator with ewma age of 60, and width reservation of 4
30 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WC{W: 4}), "done",
31 ),
32 ),
33 mpb.AppendDecorators(decor.Percentage()),
34 )
35 // simulating some work
36 max := 100 * time.Millisecond
37 for i := 0; i < total; i++ {
38 start := time.Now()
39 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
40 // ewma based decorators require work duration measurement
41 bar.IncrBy(1, time.Since(start))
42 }
43 // wait for our bar to complete and flush
44 p.Wait()
45 }
0 package main
1
2 import (
3 "fmt"
4 "math/rand"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 func init() {
13 rand.Seed(time.Now().UnixNano())
14 }
15
16 func main() {
17 var wg sync.WaitGroup
18 p := mpb.New(mpb.WithWaitGroup(&wg))
19 total := 100
20 numBars := 3
21 wg.Add(numBars)
22
23 for i := 0; i < numBars; i++ {
24 var name string
25 if i != 1 {
26 name = fmt.Sprintf("Bar#%d:", i)
27 }
28 b := p.AddBar(int64(total),
29 mpb.PrependDecorators(
30 decor.Name(name, decor.WCSyncWidth),
31 decor.CountersNoUnit("%d / %d", decor.WCSyncSpace),
32 ),
33 mpb.AppendDecorators(
34 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WC{W: 3}),
35 ),
36 )
37 go func() {
38 defer wg.Done()
39 max := 100 * time.Millisecond
40 for i := 0; i < total; i++ {
41 start := time.Now()
42 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
43 if i&1 == 1 {
44 priority := total - int(b.Current())
45 p.UpdateBarPriority(b, priority)
46 }
47 // ewma based decorators require work duration measurement
48 b.IncrBy(1, time.Since(start))
49 }
50 }()
51 }
52
53 p.Wait()
54 }
0 package main
1
2 import (
3 "fmt"
4 "math/rand"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 func init() {
13 rand.Seed(time.Now().UnixNano())
14 }
15
16 func main() {
17 var wg sync.WaitGroup
18 p := mpb.New(
19 mpb.WithWaitGroup(&wg),
20 mpb.WithWidth(13),
21 )
22 total, numBars := 101, 3
23 wg.Add(numBars)
24
25 for i := 0; i < numBars; i++ {
26 name := fmt.Sprintf("Bar#%d:", i)
27 var bar *mpb.Bar
28 if i == 0 {
29 bar = p.AddBar(int64(total),
30 // override default "[=>-]" style
31 mpb.BarStyle("╢▌▌░╟"),
32 mpb.PrependDecorators(
33 // simple name decorator
34 decor.Name(name),
35 ),
36 mpb.AppendDecorators(
37 // replace ETA decorator with "done" message, OnComplete event
38 decor.OnComplete(
39 // ETA decorator with ewma age of 60
40 decor.EwmaETA(decor.ET_STYLE_GO, 60), "done",
41 ),
42 ),
43 )
44 } else {
45 bar = p.AddSpinner(int64(total), mpb.SpinnerOnMiddle,
46 // override default {"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"} style
47 mpb.SpinnerStyle([]string{"∙∙∙", "●∙∙", "∙●∙", "∙∙●", "∙∙∙"}),
48 mpb.PrependDecorators(
49 // simple name decorator
50 decor.Name(name),
51 ),
52 mpb.AppendDecorators(
53 // replace ETA decorator with "done" message, OnComplete event
54 decor.OnComplete(
55 // ETA decorator with ewma age of 60
56 decor.EwmaETA(decor.ET_STYLE_GO, 60), "done",
57 ),
58 ),
59 )
60 }
61
62 // simulating some work
63 go func() {
64 defer wg.Done()
65 max := 100 * time.Millisecond
66 for i := 0; i < total; i++ {
67 start := time.Now()
68 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
69 // ewma based decorators require work duration measurement
70 bar.IncrBy(1, time.Since(start))
71 }
72 }()
73 }
74 // wait for all bars to complete and flush
75 p.Wait()
76 }
0 package main
1
2 import (
3 "fmt"
4 "math/rand"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb"
9 "github.com/vbauerster/mpb/decor"
10 )
11
12 const (
13 totalBars = 32
14 )
15
16 func init() {
17 rand.Seed(time.Now().UnixNano())
18 }
19
20 func main() {
21 var wg sync.WaitGroup
22 p := mpb.New(
23 mpb.WithWaitGroup(&wg),
24 mpb.WithRefreshRate(50*time.Millisecond),
25 )
26 wg.Add(totalBars)
27
28 for i := 0; i < totalBars; i++ {
29 name := fmt.Sprintf("Bar#%02d: ", i)
30 total := rand.Intn(320) + 10
31 bar := p.AddBar(int64(total),
32 mpb.PrependDecorators(
33 decor.Name(name),
34 decor.EwmaETA(decor.ET_STYLE_GO, 60, decor.WCSyncSpace),
35 ),
36 mpb.AppendDecorators(
37 decor.Percentage(decor.WC{W: 5}),
38 ),
39 )
40
41 go func() {
42 defer wg.Done()
43 max := 100 * time.Millisecond
44 for !bar.Completed() {
45 start := time.Now()
46 time.Sleep(time.Duration(rand.Intn(10)+1) * max / 10)
47 // ewma based decorators require work duration measurement
48 bar.IncrBy(1, time.Since(start))
49 }
50 }()
51 }
52
53 p.Wait()
54 }
0 package mpb
1
2 var (
3 SyncWidth = syncWidth
4 DefaultBarStyle = defaultBarStyle
5 )
0 #!/usr/bin/env bash
1
2 set -e
3 echo "" > coverage.txt
4
5 for d in $(go list ./... | grep -v vendor); do
6 go test -race -coverprofile=profile.out -covermode=atomic $d
7 if [ -f profile.out ]; then
8 cat profile.out >> coverage.txt
9 rm profile.out
10 fi
11 done
0 package internal
1
2 import "math"
3
4 // Percentage is a helper function, to calculate percentage.
5 func Percentage(total, current, width int64) int64 {
6 if total <= 0 {
7 return 0
8 }
9 p := float64(width*current) / float64(total)
10 return int64(math.Round(p))
11 }
0 package internal
1
2 import "testing"
3
4 func TestPercentage(t *testing.T) {
5 // key is barWidth
6 testSuite := map[int64][]struct {
7 name string
8 total, current, expected int64
9 }{
10 100: {
11 {"t,c,e{-1,-1,0}", -1, -1, 0},
12 {"t,c,e{0,-1,0}", 0, -1, 0},
13 {"t,c,e{0,0,0}", 0, 0, 0},
14 {"t,c,e{0,1,0}", 0, 1, 0},
15 {"t,c,e{100,0,0}", 100, 0, 0},
16 {"t,c,e{100,10,10}", 100, 10, 10},
17 {"t,c,e{100,15,15}", 100, 15, 15},
18 {"t,c,e{100,50,50}", 100, 50, 50},
19 {"t,c,e{100,99,99}", 100, 99, 99},
20 {"t,c,e{100,100,100}", 100, 100, 100},
21 {"t,c,e{100,101,101}", 100, 101, 101},
22 {"t,c,e{100,102,101}", 100, 102, 102},
23 {"t,c,e{120,0,0}", 120, 0, 0},
24 {"t,c,e{120,10,8}", 120, 10, 8},
25 {"t,c,e{120,15,13}", 120, 15, 13},
26 {"t,c,e{120,50,42}", 120, 50, 42},
27 {"t,c,e{120,60,50}", 120, 60, 50},
28 {"t,c,e{120,99,83}", 120, 99, 83},
29 {"t,c,e{120,101,84}", 120, 101, 84},
30 {"t,c,e{120,118,98}", 120, 118, 98},
31 {"t,c,e{120,119,99}", 120, 119, 99},
32 {"t,c,e{120,120,100}", 120, 120, 100},
33 {"t,c,e{120,121,101}", 120, 121, 101},
34 {"t,c,e{120,122,101}", 120, 122, 102},
35 },
36 80: {
37 {"t,c,e{-1,-1,0}", -1, -1, 0},
38 {"t,c,e{0,-1,0}", 0, -1, 0},
39 {"t,c,e{0,0,0}", 0, 0, 0},
40 {"t,c,e{0,1,0}", 0, 1, 0},
41 {"t,c,e{100,0,0}", 100, 0, 0},
42 {"t,c,e{100,10,8}", 100, 10, 8},
43 {"t,c,e{100,15,12}", 100, 15, 12},
44 {"t,c,e{100,50,40}", 100, 50, 40},
45 {"t,c,e{100,99,79}", 100, 99, 79},
46 {"t,c,e{100,100,80}", 100, 100, 80},
47 {"t,c,e{100,101,81}", 100, 101, 81},
48 {"t,c,e{100,102,82}", 100, 102, 82},
49 {"t,c,e{120,0,0}", 120, 0, 0},
50 {"t,c,e{120,10,7}", 120, 10, 7},
51 {"t,c,e{120,15,10}", 120, 15, 10},
52 {"t,c,e{120,50,33}", 120, 50, 33},
53 {"t,c,e{120,60,40}", 120, 60, 40},
54 {"t,c,e{120,99,66}", 120, 99, 66},
55 {"t,c,e{120,101,67}", 120, 101, 67},
56 {"t,c,e{120,118,79}", 120, 118, 79},
57 {"t,c,e{120,119,79}", 120, 119, 79},
58 {"t,c,e{120,120,80}", 120, 120, 80},
59 {"t,c,e{120,121,81}", 120, 121, 81},
60 {"t,c,e{120,122,81}", 120, 122, 81},
61 },
62 }
63
64 for width, cases := range testSuite {
65 for _, tc := range cases {
66 got := Percentage(tc.total, tc.current, width)
67 if got != tc.expected {
68 t.Errorf("width %d; %s: Expected: %d, got: %d\n", width, tc.name, tc.expected, got)
69 }
70 }
71 }
72 }
0 package mpb
1
2 import (
3 "context"
4 "io"
5 "sync"
6 "time"
7
8 "github.com/vbauerster/mpb/cwriter"
9 )
10
11 // ProgressOption is a function option which changes the default
12 // behavior of progress pool, if passed to mpb.New(...ProgressOption).
13 type ProgressOption func(*pState)
14
15 // WithWaitGroup provides means to have a single joint point. If
16 // *sync.WaitGroup is provided, you can safely call just p.Wait()
17 // without calling Wait() on provided *sync.WaitGroup. Makes sense
18 // when there are more than one bar to render.
19 func WithWaitGroup(wg *sync.WaitGroup) ProgressOption {
20 return func(s *pState) {
21 s.uwg = wg
22 }
23 }
24
25 // WithWidth sets container width. Default is 80. Bars inherit this
26 // width, as long as no BarWidth is applied.
27 func WithWidth(w int) ProgressOption {
28 return func(s *pState) {
29 if w >= 0 {
30 s.width = w
31 }
32 }
33 }
34
35 // WithRefreshRate overrides default 120ms refresh rate.
36 func WithRefreshRate(d time.Duration) ProgressOption {
37 return func(s *pState) {
38 if d < 10*time.Millisecond {
39 return
40 }
41 s.rr = d
42 }
43 }
44
45 // WithManualRefresh disables internal auto refresh time.Ticker.
46 // Refresh will occur upon receive value from provided ch.
47 func WithManualRefresh(ch <-chan time.Time) ProgressOption {
48 return func(s *pState) {
49 s.manualRefreshCh = ch
50 }
51 }
52
53 // WithContext provided context will be used for cancellation purposes.
54 func WithContext(ctx context.Context) ProgressOption {
55 return func(s *pState) {
56 if ctx == nil {
57 return
58 }
59 s.ctx = ctx
60 }
61 }
62
63 // WithShutdownNotifier provided chanel will be closed, after all bars
64 // have been rendered.
65 func WithShutdownNotifier(ch chan struct{}) ProgressOption {
66 return func(s *pState) {
67 s.shutdownNotifier = ch
68 }
69 }
70
71 // WithOutput overrides default output os.Stdout.
72 func WithOutput(w io.Writer) ProgressOption {
73 return func(s *pState) {
74 if w == nil {
75 return
76 }
77 s.cw = cwriter.New(w)
78 }
79 }
80
81 // WithDebugOutput sets debug output.
82 func WithDebugOutput(w io.Writer) ProgressOption {
83 return func(s *pState) {
84 if w == nil {
85 return
86 }
87 s.debugOut = w
88 }
89 }
0 package mpb
1
2 import "container/heap"
3
4 // A priorityQueue implements heap.Interface
5 type priorityQueue []*Bar
6
7 func (pq priorityQueue) Len() int { return len(pq) }
8
9 func (pq priorityQueue) Less(i, j int) bool {
10 return pq[i].priority < pq[j].priority
11 }
12
13 func (pq priorityQueue) Swap(i, j int) {
14 pq[i], pq[j] = pq[j], pq[i]
15 pq[i].index = i
16 pq[j].index = j
17 }
18
19 func (pq *priorityQueue) Push(x interface{}) {
20 n := len(*pq)
21 bar := x.(*Bar)
22 bar.index = n
23 *pq = append(*pq, bar)
24 }
25
26 func (pq *priorityQueue) Pop() interface{} {
27 old := *pq
28 n := len(old)
29 bar := old[n-1]
30 bar.index = -1 // for safety
31 *pq = old[0 : n-1]
32 return bar
33 }
34
35 // update modifies the priority of a Bar in the queue.
36 func (pq *priorityQueue) update(bar *Bar, priority int) {
37 bar.priority = priority
38 heap.Fix(pq, bar.index)
39 }
0 package mpb
1
2 import (
3 "container/heap"
4 "context"
5 "fmt"
6 "io"
7 "io/ioutil"
8 "os"
9 "sync"
10 "time"
11
12 "github.com/vbauerster/mpb/cwriter"
13 )
14
15 const (
16 // default RefreshRate
17 prr = 120 * time.Millisecond
18 // default width
19 pwidth = 80
20 )
21
22 // Progress represents the container that renders Progress bars
23 type Progress struct {
24 wg *sync.WaitGroup
25 uwg *sync.WaitGroup
26 operateState chan func(*pState)
27 done chan struct{}
28 }
29
30 type pState struct {
31 bHeap *priorityQueue
32 shutdownPending []*Bar
33 heapUpdated bool
34 zeroWait bool
35 idCounter int
36 width int
37 format string
38 rr time.Duration
39 cw *cwriter.Writer
40 pMatrix map[int][]chan int
41 aMatrix map[int][]chan int
42
43 // following are provided/overrided by user
44 ctx context.Context
45 uwg *sync.WaitGroup
46 manualRefreshCh <-chan time.Time
47 shutdownNotifier chan struct{}
48 waitBars map[*Bar]*Bar
49 debugOut io.Writer
50 }
51
52 // New creates new Progress instance, which orchestrates bars rendering
53 // process. Accepts mpb.ProgressOption funcs for customization.
54 func New(options ...ProgressOption) *Progress {
55 pq := make(priorityQueue, 0)
56 heap.Init(&pq)
57 s := &pState{
58 ctx: context.Background(),
59 bHeap: &pq,
60 width: pwidth,
61 cw: cwriter.New(os.Stdout),
62 rr: prr,
63 waitBars: make(map[*Bar]*Bar),
64 debugOut: ioutil.Discard,
65 }
66
67 for _, opt := range options {
68 if opt != nil {
69 opt(s)
70 }
71 }
72
73 p := &Progress{
74 uwg: s.uwg,
75 wg: new(sync.WaitGroup),
76 operateState: make(chan func(*pState)),
77 done: make(chan struct{}),
78 }
79 go p.serve(s)
80 return p
81 }
82
83 // AddBar creates a new progress bar and adds to the container.
84 func (p *Progress) AddBar(total int64, options ...BarOption) *Bar {
85 return p.Add(total, newDefaultBarFiller(), options...)
86 }
87
88 // AddSpinner creates a new spinner bar and adds to the container.
89 func (p *Progress) AddSpinner(total int64, alignment SpinnerAlignment, options ...BarOption) *Bar {
90 filler := &spinnerFiller{
91 frames: defaultSpinnerStyle,
92 alignment: alignment,
93 }
94 return p.Add(total, filler, options...)
95 }
96
97 // Add creates a bar which renders itself by provided filler.
98 func (p *Progress) Add(total int64, filler Filler, options ...BarOption) *Bar {
99 if filler == nil {
100 filler = newDefaultBarFiller()
101 }
102 p.wg.Add(1)
103 result := make(chan *Bar)
104 select {
105 case p.operateState <- func(s *pState) {
106 b := newBar(s.ctx, p.wg, filler, s.idCounter, s.width, total, options...)
107 if b.runningBar != nil {
108 s.waitBars[b.runningBar] = b
109 } else {
110 heap.Push(s.bHeap, b)
111 s.heapUpdated = true
112 }
113 s.idCounter++
114 result <- b
115 }:
116 return <-result
117 case <-p.done:
118 p.wg.Done()
119 return nil
120 }
121 }
122
123 // Abort is only effective while bar progress is running, it means
124 // remove bar now without waiting for its completion. If bar is already
125 // completed, there is nothing to abort. If you need to remove bar
126 // after completion, use BarRemoveOnComplete BarOption.
127 func (p *Progress) Abort(b *Bar, remove bool) {
128 select {
129 case p.operateState <- func(s *pState) {
130 if b.index < 0 {
131 return
132 }
133 if remove {
134 s.heapUpdated = heap.Remove(s.bHeap, b.index) != nil
135 }
136 s.shutdownPending = append(s.shutdownPending, b)
137 }:
138 case <-p.done:
139 }
140 }
141
142 // UpdateBarPriority provides a way to change bar's order position.
143 // Zero is highest priority, i.e. bar will be on top.
144 func (p *Progress) UpdateBarPriority(b *Bar, priority int) {
145 select {
146 case p.operateState <- func(s *pState) { s.bHeap.update(b, priority) }:
147 case <-p.done:
148 }
149 }
150
151 // BarCount returns bars count
152 func (p *Progress) BarCount() int {
153 result := make(chan int, 1)
154 select {
155 case p.operateState <- func(s *pState) { result <- s.bHeap.Len() }:
156 return <-result
157 case <-p.done:
158 return 0
159 }
160 }
161
162 // Wait first waits for user provided *sync.WaitGroup, if any, then
163 // waits far all bars to complete and finally shutdowns master goroutine.
164 // After this method has been called, there is no way to reuse *Progress
165 // instance.
166 func (p *Progress) Wait() {
167 if p.uwg != nil {
168 p.uwg.Wait()
169 }
170
171 p.wg.Wait()
172
173 select {
174 case p.operateState <- func(s *pState) { s.zeroWait = true }:
175 <-p.done
176 case <-p.done:
177 }
178 }
179
180 func (s *pState) updateSyncMatrix() {
181 s.pMatrix = make(map[int][]chan int)
182 s.aMatrix = make(map[int][]chan int)
183 for i := 0; i < s.bHeap.Len(); i++ {
184 bar := (*s.bHeap)[i]
185 table := bar.wSyncTable()
186 pRow, aRow := table[0], table[1]
187
188 for i, ch := range pRow {
189 s.pMatrix[i] = append(s.pMatrix[i], ch)
190 }
191
192 for i, ch := range aRow {
193 s.aMatrix[i] = append(s.aMatrix[i], ch)
194 }
195 }
196 }
197
198 func (s *pState) render(tw int) {
199 if s.heapUpdated {
200 s.updateSyncMatrix()
201 s.heapUpdated = false
202 }
203 syncWidth(s.pMatrix)
204 syncWidth(s.aMatrix)
205
206 for i := 0; i < s.bHeap.Len(); i++ {
207 bar := (*s.bHeap)[i]
208 go bar.render(s.debugOut, tw)
209 }
210
211 if err := s.flush(s.bHeap.Len()); err != nil {
212 fmt.Fprintf(s.debugOut, "%s %s %v\n", "[mpb]", time.Now(), err)
213 }
214 }
215
216 func (s *pState) flush(lineCount int) error {
217 for s.bHeap.Len() > 0 {
218 bar := heap.Pop(s.bHeap).(*Bar)
219 frameReader := <-bar.frameReaderCh
220 defer func() {
221 if frameReader.toShutdown {
222 // shutdown at next flush, in other words decrement underlying WaitGroup
223 // only after the bar with completed state has been flushed. this
224 // ensures no bar ends up with less than 100% rendered.
225 s.shutdownPending = append(s.shutdownPending, bar)
226 if replacementBar, ok := s.waitBars[bar]; ok {
227 heap.Push(s.bHeap, replacementBar)
228 s.heapUpdated = true
229 delete(s.waitBars, bar)
230 }
231 if frameReader.removeOnComplete {
232 s.heapUpdated = true
233 return
234 }
235 }
236 heap.Push(s.bHeap, bar)
237 }()
238 s.cw.ReadFrom(frameReader)
239 lineCount += frameReader.extendedLines
240 }
241
242 for i := len(s.shutdownPending) - 1; i >= 0; i-- {
243 close(s.shutdownPending[i].shutdown)
244 s.shutdownPending = s.shutdownPending[:i]
245 }
246
247 return s.cw.Flush(lineCount)
248 }
249
250 func syncWidth(matrix map[int][]chan int) {
251 for _, column := range matrix {
252 column := column
253 go func() {
254 var maxWidth int
255 for _, ch := range column {
256 w := <-ch
257 if w > maxWidth {
258 maxWidth = w
259 }
260 }
261 for _, ch := range column {
262 ch <- maxWidth
263 }
264 }()
265 }
266 }
0 // +build !windows
1
2 package mpb
3
4 import (
5 "os"
6 "os/signal"
7 "syscall"
8 "time"
9 )
10
11 func (p *Progress) serve(s *pState) {
12
13 var ticker *time.Ticker
14 var refreshCh <-chan time.Time
15 var winch chan os.Signal
16 var resumeTimer *time.Timer
17 var resumeEvent <-chan time.Time
18 winchIdleDur := s.rr * 2
19
20 if s.manualRefreshCh == nil {
21 ticker = time.NewTicker(s.rr)
22 refreshCh = ticker.C
23 winch = make(chan os.Signal, 2)
24 signal.Notify(winch, syscall.SIGWINCH)
25 } else {
26 refreshCh = s.manualRefreshCh
27 }
28
29 for {
30 select {
31 case op := <-p.operateState:
32 op(s)
33 case <-refreshCh:
34 if s.zeroWait {
35 if s.manualRefreshCh == nil {
36 signal.Stop(winch)
37 ticker.Stop()
38 }
39 if s.shutdownNotifier != nil {
40 close(s.shutdownNotifier)
41 }
42 close(p.done)
43 return
44 }
45 tw, err := s.cw.GetWidth()
46 if err != nil {
47 tw = s.width
48 }
49 s.render(tw)
50 case <-winch:
51 tw, err := s.cw.GetWidth()
52 if err != nil {
53 tw = s.width
54 }
55 s.render(tw - tw/8)
56 if resumeTimer != nil && resumeTimer.Reset(winchIdleDur) {
57 break
58 }
59 ticker.Stop()
60 resumeTimer = time.NewTimer(winchIdleDur)
61 resumeEvent = resumeTimer.C
62 case <-resumeEvent:
63 ticker = time.NewTicker(s.rr)
64 refreshCh = ticker.C
65 resumeEvent = nil
66 resumeTimer = nil
67 }
68 }
69 }
0 package mpb_test
1
2 import (
3 "bytes"
4 "context"
5 "fmt"
6 "io/ioutil"
7 "math/rand"
8 "sync"
9 "testing"
10 "time"
11
12 "github.com/vbauerster/mpb"
13 . "github.com/vbauerster/mpb"
14 "github.com/vbauerster/mpb/cwriter"
15 )
16
17 var (
18 cursorUp = fmt.Sprintf("%c[%dA", cwriter.ESC, 1)
19 clearLine = fmt.Sprintf("%c[2K\r", cwriter.ESC)
20 clearCursorAndLine = cursorUp + clearLine
21 )
22
23 func init() {
24 rand.Seed(time.Now().UnixNano())
25 }
26
27 func TestBarCount(t *testing.T) {
28 p := New(WithOutput(ioutil.Discard))
29
30 var wg sync.WaitGroup
31 wg.Add(1)
32 b := p.AddBar(100)
33 go func() {
34 for i := 0; i < 100; i++ {
35 if i == 33 {
36 wg.Done()
37 }
38 b.Increment()
39 time.Sleep(randomDuration(100 * time.Millisecond))
40 }
41 }()
42
43 wg.Wait()
44 count := p.BarCount()
45 if count != 1 {
46 t.Errorf("BarCount want: %q, got: %q\n", 1, count)
47 }
48
49 p.Abort(b, true)
50 p.Wait()
51 }
52
53 func TestBarAbort(t *testing.T) {
54 p := New(WithOutput(ioutil.Discard))
55
56 var wg sync.WaitGroup
57 wg.Add(1)
58 bars := make([]*Bar, 3)
59 for i := 0; i < 3; i++ {
60 b := p.AddBar(100)
61 bars[i] = b
62 go func(n int) {
63 for i := 0; i < 100; i++ {
64 if n == 0 && i == 33 {
65 p.Abort(b, true)
66 wg.Done()
67 }
68 b.Increment()
69 time.Sleep(randomDuration(100 * time.Millisecond))
70 }
71 }(i)
72 }
73
74 wg.Wait()
75 count := p.BarCount()
76 if count != 2 {
77 t.Errorf("BarCount want: %q, got: %q\n", 2, count)
78 }
79 p.Abort(bars[1], true)
80 p.Abort(bars[2], true)
81 p.Wait()
82 }
83
84 func TestWithContext(t *testing.T) {
85 ctx, cancel := context.WithCancel(context.Background())
86 shutdown := make(chan struct{})
87 p := mpb.New(
88 mpb.WithOutput(ioutil.Discard),
89 mpb.WithContext(ctx),
90 mpb.WithRefreshRate(50*time.Millisecond),
91 mpb.WithShutdownNotifier(shutdown),
92 )
93
94 total := 10000
95 numBars := 3
96 bars := make([]*mpb.Bar, 0, numBars)
97 for i := 0; i < numBars; i++ {
98 bar := p.AddBar(int64(total))
99 bars = append(bars, bar)
100 go func() {
101 for !bar.Completed() {
102 bar.Increment()
103 time.Sleep(randomDuration(100 * time.Millisecond))
104 }
105 }()
106 }
107
108 time.Sleep(50 * time.Millisecond)
109 cancel()
110
111 p.Wait()
112 select {
113 case <-shutdown:
114 case <-time.After(100 * time.Millisecond):
115 t.Error("Progress didn't stop")
116 }
117 }
118
119 func getLastLine(bb []byte) []byte {
120 split := bytes.Split(bb, []byte("\n"))
121 lastLine := split[len(split)-2]
122 return lastLine[len(clearCursorAndLine):]
123 }
124
125 func randomDuration(max time.Duration) time.Duration {
126 return time.Duration(rand.Intn(10)+1) * max / 10
127 }
0 // +build windows
1
2 package mpb
3
4 import (
5 "time"
6 )
7
8 func (p *Progress) serve(s *pState) {
9
10 var ticker *time.Ticker
11 var refreshCh <-chan time.Time
12
13 if s.manualRefreshCh == nil {
14 ticker = time.NewTicker(s.rr)
15 refreshCh = ticker.C
16 } else {
17 refreshCh = s.manualRefreshCh
18 }
19
20 for {
21 select {
22 case op := <-p.operateState:
23 op(s)
24 case <-refreshCh:
25 if s.zeroWait {
26 if s.manualRefreshCh == nil {
27 ticker.Stop()
28 }
29 if s.shutdownNotifier != nil {
30 close(s.shutdownNotifier)
31 }
32 close(p.done)
33 return
34 }
35 tw, err := s.cw.GetWidth()
36 if err != nil {
37 tw = s.width
38 }
39 s.render(tw)
40 }
41 }
42 }
0 package mpb
1
2 import (
3 "io"
4 "time"
5 )
6
7 // proxyReader is io.Reader wrapper, for proxy read bytes
8 type proxyReader struct {
9 io.ReadCloser
10 bar *Bar
11 iT time.Time
12 }
13
14 func (pr *proxyReader) Read(p []byte) (n int, err error) {
15 n, err = pr.ReadCloser.Read(p)
16 if n > 0 {
17 pr.bar.IncrBy(n, time.Since(pr.iT))
18 pr.iT = time.Now()
19 }
20 return
21 }
0 package mpb_test
1
2 import (
3 "io"
4 "io/ioutil"
5 "strings"
6 "testing"
7
8 "github.com/vbauerster/mpb"
9 )
10
11 const content = `Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
12 eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
13 veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
14 commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit
15 esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
16 cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
17 est laborum.`
18
19 type testReader struct {
20 io.Reader
21 called bool
22 }
23
24 func (r *testReader) Read(p []byte) (n int, err error) {
25 r.called = true
26 return r.Reader.Read(p)
27 }
28
29 func TestProxyReader(t *testing.T) {
30
31 p := mpb.New(mpb.WithOutput(ioutil.Discard))
32
33 reader := &testReader{Reader: strings.NewReader(content)}
34
35 total := len(content)
36 bar := p.AddBar(100, mpb.TrimSpace())
37
38 written, err := io.Copy(ioutil.Discard, bar.ProxyReader(reader))
39 if err != nil {
40 t.Errorf("Error copying from reader: %+v\n", err)
41 }
42
43 p.Wait()
44
45 if !reader.called {
46 t.Error("Read not called")
47 }
48
49 if written != int64(total) {
50 t.Errorf("Expected written: %d, got: %d\n", total, written)
51 }
52 }
0 package mpb
1
2 import (
3 "io"
4 "strings"
5 "unicode/utf8"
6
7 "github.com/vbauerster/mpb/decor"
8 )
9
10 // SpinnerAlignment enum.
11 type SpinnerAlignment int
12
13 // SpinnerAlignment kinds.
14 const (
15 SpinnerOnLeft SpinnerAlignment = iota
16 SpinnerOnMiddle
17 SpinnerOnRight
18 )
19
20 var defaultSpinnerStyle = []string{"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"}
21
22 type spinnerFiller struct {
23 frames []string
24 count uint
25 alignment SpinnerAlignment
26 }
27
28 func (s *spinnerFiller) Fill(w io.Writer, width int, stat *decor.Statistics) {
29
30 frame := s.frames[s.count%uint(len(s.frames))]
31 frameWidth := utf8.RuneCountInString(frame)
32
33 if width < frameWidth {
34 return
35 }
36
37 switch rest := width - frameWidth; s.alignment {
38 case SpinnerOnLeft:
39 io.WriteString(w, frame+strings.Repeat(" ", rest))
40 case SpinnerOnMiddle:
41 str := strings.Repeat(" ", rest/2) + frame + strings.Repeat(" ", rest/2+rest%2)
42 io.WriteString(w, str)
43 case SpinnerOnRight:
44 io.WriteString(w, strings.Repeat(" ", rest)+frame)
45 }
46 s.count++
47 }