blob: 7cfa861cbea99de68ae551ceadaabe49c0556621 [file] [log] [blame]
Hank Lioua9672e52019-05-24 10:27:08 +08001{
2 "sensors" : [
3 {
4 "name": "Fan0_0_RPM",
5 "type": "fan",
6 "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan0_0_RPM",
7 "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1",
8 "min": 0,
9 "max": 255
10 },
11 {
12 "name": "Fan0_1_RPM",
13 "type": "fan",
14 "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan0_1_RPM",
15 "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm1",
16 "min": 0,
17 "max": 255
18 },
19 {
20 "name": "Fan1_0_RPM",
21 "type": "fan",
22 "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan1_0_RPM",
23 "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2",
24 "min": 0,
25 "max": 255
26 },
27 {
28 "name": "Fan1_1_RPM",
29 "type": "fan",
30 "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan1_1_RPM",
31 "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm2",
32 "min": 0,
33 "max": 255
34 },
35 {
36 "name": "Fan2_0_RPM",
37 "type": "fan",
38 "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan2_0_RPM",
39 "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3",
40 "min": 0,
41 "max": 255
42 },
43 {
44 "name": "Fan2_1_RPM",
45 "type": "fan",
46 "readPath": "/xyz/openbmc_project/sensors/fan_tach/Fan2_1_RPM",
47 "writePath": "/sys/devices/platform/ahb/ahb:apb/f0103000.pwm-fan-controller/hwmon/**/pwm3",
48 "min": 0,
49 "max": 255
50 },
51 {
52 "name": "KL0",
53 "type": "temp",
54 "readPath": "/xyz/openbmc_project/sensors/temperature/KL0",
55 "writePath": "",
56 "min": 0,
57 "max": 0,
58 "timeout": 0
59 },
60 {
61 "name": "nvme0",
62 "type": "temp",
63 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme0",
64 "writePath": "",
65 "min": 0,
66 "max": 0,
67 "timeout": 0
68 },
69 {
70 "name": "nvme1",
71 "type": "temp",
72 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme1",
73 "writePath": "",
74 "min": 0,
75 "max": 0,
76 "timeout": 0
77 },
78 {
79 "name": "nvme2",
80 "type": "temp",
81 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme2",
82 "writePath": "",
83 "min": 0,
84 "max": 0,
85 "timeout": 0
86 },
87 {
88 "name": "nvme3",
89 "type": "temp",
90 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme3",
91 "writePath": "",
92 "min": 0,
93 "max": 0,
94 "timeout": 0
95 },
96 {
97 "name": "nvme4",
98 "type": "temp",
99 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme4",
100 "writePath": "",
101 "min": 0,
102 "max": 0,
103 "timeout": 0
104 },
105 {
106 "name": "nvme5",
107 "type": "temp",
108 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme5",
109 "writePath": "",
110 "min": 0,
111 "max": 0,
112 "timeout": 0
113 },
114 {
115 "name": "nvme6",
116 "type": "temp",
117 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme6",
118 "writePath": "",
119 "min": 0,
120 "max": 0,
121 "timeout": 0
122 },
123 {
124 "name": "nvme7",
125 "type": "temp",
126 "readPath": "/xyz/openbmc_project/sensors/temperature/nvme7",
127 "writePath": "",
128 "min": 0,
129 "max": 0,
130 "timeout": 0
131 }
132 ],
133 "zones" : [
134 {
135 "id": 0,
136 "minThermalOutput": 0.0,
137 "failsafePercent": 100.0,
138 "pids": [
139 {
140 "name": "Fan0_0_RPM",
141 "type": "fan",
142 "inputs": ["Fan0_0_RPM"],
143 "setpoint": 65.0,
144 "pid": {
145 "samplePeriod": 1.0,
146 "proportionalCoeff": 0.0,
147 "integralCoeff": 0.0,
148 "feedFwdOffsetCoeff": 0.0,
149 "feedFwdGainCoeff": 1.0,
150 "integralLimit_min": 0.0,
151 "integralLimit_max": 0.0,
152 "outLim_min": 3.0,
153 "outLim_max": 100.0,
154 "slewNeg": 0.0,
155 "slewPos": 0.0
156 }
157 },
158 {
159 "name": "Fan0_1_RPM",
160 "type": "fan",
161 "inputs": ["Fan0_1_RPM"],
162 "setpoint": 65.0,
163 "pid": {
164 "samplePeriod": 1.0,
165 "proportionalCoeff": 0.0,
166 "integralCoeff": 0.0,
167 "feedFwdOffsetCoeff": 0.0,
168 "feedFwdGainCoeff": 1.0,
169 "integralLimit_min": 0.0,
170 "integralLimit_max": 0.0,
171 "outLim_min": 3.0,
172 "outLim_max": 100.0,
173 "slewNeg": 0.0,
174 "slewPos": 0.0
175 }
176 },
177 {
178 "name": "Fan1_0_RPM",
179 "type": "fan",
180 "inputs": ["Fan1_0_RPM"],
181 "setpoint": 65.0,
182 "pid": {
183 "samplePeriod": 1.0,
184 "proportionalCoeff": 0.0,
185 "integralCoeff": 0.0,
186 "feedFwdOffsetCoeff": 0.0,
187 "feedFwdGainCoeff": 1.0,
188 "integralLimit_min": 0.0,
189 "integralLimit_max": 0.0,
190 "outLim_min": 3.0,
191 "outLim_max": 100.0,
192 "slewNeg": 0.0,
193 "slewPos": 0.0
194 }
195 },
196 {
197 "name": "Fan1_1_RPM",
198 "type": "fan",
199 "inputs": ["Fan1_1_RPM"],
200 "setpoint": 65.0,
201 "pid": {
202 "samplePeriod": 1.0,
203 "proportionalCoeff": 0.0,
204 "integralCoeff": 0.0,
205 "feedFwdOffsetCoeff": 0.0,
206 "feedFwdGainCoeff": 1.0,
207 "integralLimit_min": 0.0,
208 "integralLimit_max": 0.0,
209 "outLim_min": 3.0,
210 "outLim_max": 100.0,
211 "slewNeg": 0.0,
212 "slewPos": 0.0
213 }
214 },
215 {
216 "name": "Fan2_0_RPM",
217 "type": "fan",
218 "inputs": ["Fan2_0_RPM"],
219 "setpoint": 65.0,
220 "pid": {
221 "samplePeriod": 1.0,
222 "proportionalCoeff": 0.0,
223 "integralCoeff": 0.0,
224 "feedFwdOffsetCoeff": 0.0,
225 "feedFwdGainCoeff": 1.0,
226 "integralLimit_min": 0.0,
227 "integralLimit_max": 0.0,
228 "outLim_min": 3.0,
229 "outLim_max": 100.0,
230 "slewNeg": 0.0,
231 "slewPos": 0.0
232 }
233 },
234 {
235 "name": "Fan2_1_RPM",
236 "type": "fan",
237 "inputs": ["Fan2_1_RPM"],
238 "setpoint": 65.0,
239 "pid": {
240 "samplePeriod": 1.0,
241 "proportionalCoeff": 0.0,
242 "integralCoeff": 0.0,
243 "feedFwdOffsetCoeff": 0.0,
244 "feedFwdGainCoeff": 1.0,
245 "integralLimit_min": 0.0,
246 "integralLimit_max": 0.0,
247 "outLim_min": 3.0,
248 "outLim_max": 100.0,
249 "slewNeg": 0.0,
250 "slewPos": 0.0
251 }
252 },
253 {
254 "name": "nvme0",
255 "type": "temp",
256 "inputs": ["nvme0"],
257 "setpoint": 65.0,
258 "pid": {
259 "samplePeriod": 1.0,
260 "proportionalCoeff": -20.0,
261 "integralCoeff": -0.1,
262 "feedFwdOffsetCoeff": 0.0,
263 "feedFwdGainCoeff": 0.0,
264 "integralLimit_min": 0.0,
265 "integralLimit_max": 0.0,
266 "outLim_min": 0.0,
267 "outLim_max": 16000.0,
268 "slewNeg": 0.0,
269 "slewPos": 0.0,
270 "positiveHysteresis": 1.0,
271 "negativeHysteresis": 1.0
272 }
273 },
274 {
275 "name": "nvme1",
276 "type": "temp",
277 "inputs": ["nvme1"],
278 "setpoint": 65.0,
279 "pid": {
280 "samplePeriod": 1.0,
281 "proportionalCoeff": -20.0,
282 "integralCoeff": -0.1,
283 "feedFwdOffsetCoeff": 0.0,
284 "feedFwdGainCoeff": 0.0,
285 "integralLimit_min": 0.0,
286 "integralLimit_max": 0.0,
287 "outLim_min": 0.0,
288 "outLim_max": 16000.0,
289 "slewNeg": 0.0,
290 "slewPos": 0.0,
291 "positiveHysteresis": 1.0,
292 "negativeHysteresis": 1.0
293 }
294 },
295 {
296 "name": "nvme2",
297 "type": "temp",
298 "inputs": ["nvme2"],
299 "setpoint": 65.0,
300 "pid": {
301 "samplePeriod": 1.0,
302 "proportionalCoeff": -20.0,
303 "integralCoeff": -0.1,
304 "feedFwdOffsetCoeff": 0.0,
305 "feedFwdGainCoeff": 0.0,
306 "integralLimit_min": 0.0,
307 "integralLimit_max": 0.0,
308 "outLim_min": 0.0,
309 "outLim_max": 16000.0,
310 "slewNeg": 0.0,
311 "slewPos": 0.0,
312 "positiveHysteresis": 1.0,
313 "negativeHysteresis": 1.0
314 }
315 },
316 {
317 "name": "nvme3",
318 "type": "temp",
319 "inputs": ["nvme3"],
320 "setpoint": 65.0,
321 "pid": {
322 "samplePeriod": 1.0,
323 "proportionalCoeff": -20.0,
324 "integralCoeff": -0.1,
325 "feedFwdOffsetCoeff": 0.0,
326 "feedFwdGainCoeff": 0.0,
327 "integralLimit_min": 0.0,
328 "integralLimit_max": 0.0,
329 "outLim_min": 0.0,
330 "outLim_max": 16000.0,
331 "slewNeg": 0.0,
332 "slewPos": 0.0,
333 "positiveHysteresis": 1.0,
334 "negativeHysteresis": 1.0
335 }
336 },
337 {
338 "name": "nvme4",
339 "type": "temp",
340 "inputs": ["nvme4"],
341 "setpoint": 65.0,
342 "pid": {
343 "samplePeriod": 1.0,
344 "proportionalCoeff": -20.0,
345 "integralCoeff": -0.1,
346 "feedFwdOffsetCoeff": 0.0,
347 "feedFwdGainCoeff": 0.0,
348 "integralLimit_min": 0.0,
349 "integralLimit_max": 0.0,
350 "outLim_min": 0.0,
351 "outLim_max": 16000.0,
352 "slewNeg": 0.0,
353 "slewPos": 0.0,
354 "positiveHysteresis": 1.0,
355 "negativeHysteresis": 1.0
356 }
357 },
358 {
359 "name": "nvme5",
360 "type": "temp",
361 "inputs": ["nvme5"],
362 "setpoint": 65.0,
363 "pid": {
364 "samplePeriod": 1.0,
365 "proportionalCoeff": -20.0,
366 "integralCoeff": -0.1,
367 "feedFwdOffsetCoeff": 0.0,
368 "feedFwdGainCoeff": 0.0,
369 "integralLimit_min": 0.0,
370 "integralLimit_max": 0.0,
371 "outLim_min": 0.0,
372 "outLim_max": 16000.0,
373 "slewNeg": 0.0,
374 "slewPos": 0.0,
375 "positiveHysteresis": 1.0,
376 "negativeHysteresis": 1.0
377 }
378 },
379 {
380 "name": "nvme6",
381 "type": "temp",
382 "inputs": ["nvme6"],
383 "setpoint": 65.0,
384 "pid": {
385 "samplePeriod": 1.0,
386 "proportionalCoeff": -20.0,
387 "integralCoeff": -0.1,
388 "feedFwdOffsetCoeff": 0.0,
389 "feedFwdGainCoeff": 0.0,
390 "integralLimit_min": 0.0,
391 "integralLimit_max": 0.0,
392 "outLim_min": 0.0,
393 "outLim_max": 16000.0,
394 "slewNeg": 0.0,
395 "slewPos": 0.0,
396 "positiveHysteresis": 1.0,
397 "negativeHysteresis": 1.0
398 }
399 },
400 {
401 "name": "nvme7",
402 "type": "temp",
403 "inputs": ["nvme7"],
404 "setpoint": 65.0,
405 "pid": {
406 "samplePeriod": 1.0,
407 "proportionalCoeff": -20.0,
408 "integralCoeff": -0.1,
409 "feedFwdOffsetCoeff": 0.0,
410 "feedFwdGainCoeff": 0.0,
411 "integralLimit_min": 0.0,
412 "integralLimit_max": 0.0,
413 "outLim_min": 0.0,
414 "outLim_max": 16000.0,
415 "slewNeg": 0.0,
416 "slewPos": 0.0,
417 "positiveHysteresis": 1.0,
418 "negativeHysteresis": 1.0
419 }
420 },
421 {
422 "name": "KL0",
423 "type": "stepwise",
424 "inputs": ["KL0"],
425 "setpoint": 30.0,
426 "pid": {
427 "samplePeriod": 1.0,
428 "positiveHysteresis": 0.0,
429 "negativeHysteresis": 0.0,
430 "isCeiling": false,
431 "reading": {
432 "0": 25,
433 "1": 26,
434 "2": 27,
435 "3": 28,
436 "4": 29,
437 "5": 30,
438 "6": 31,
439 "7": 32,
440 "8": 33,
441 "9": 34,
442 "10": 35,
443 "11": 36,
444 "12": 37,
445 "13": 38,
446 "14": 39,
447 "15": 40,
448 "16": 42,
449 "17": 44,
450 "18": 45,
451 "19": 50
452 },
453 "output": {
454 "0": 10,
455 "1": 10,
456 "2": 10,
457 "3": 10,
458 "4": 10,
459 "5": 10,
460 "6": 20,
461 "7": 30,
462 "8": 40,
463 "9": 50,
464 "10": 60,
465 "11": 73,
466 "12": 76,
467 "13": 79,
468 "14": 82,
469 "15": 86,
470 "16": 90,
471 "17": 90,
472 "18": 100,
473 "19": 100
474 }
475 }
476 },
477 {
478 "name": "nvme00",
479 "type": "stepwise",
480 "inputs": ["nvme0"],
481 "setpoint": 30.0,
482 "pid": {
483 "samplePeriod": 1.0,
484 "positiveHysteresis": 1.0,
485 "negativeHysteresis": 1.0,
486 "isCeiling": false,
487 "reading": {
488 "0": 45,
489 "1": 46,
490 "2": 47,
491 "3": 48,
492 "4": 49,
493 "5": 50,
494 "6": 51,
495 "7": 52,
496 "8": 53,
497 "9": 54,
498 "10": 55,
499 "11": 56,
500 "12": 57,
501 "13": 58,
502 "14": 59,
503 "15": 60,
504 "16": 61,
505 "17": 62,
506 "18": 63,
507 "19": 64
508 },
509 "output": {
510 "0": 10,
511 "1": 10,
512 "2": 13,
513 "3": 15,
514 "4": 18,
515 "5": 21,
516 "6": 24,
517 "7": 26,
518 "8": 28,
519 "9": 30,
520 "10": 32,
521 "11": 34,
522 "12": 36,
523 "13": 38,
524 "14": 40,
525 "15": 41,
526 "16": 42,
527 "17": 43,
528 "18": 44,
529 "19": 45
530 }
531 }
532 },
533 {
534 "name": "nvme10",
535 "type": "stepwise",
536 "inputs": ["nvme1"],
537 "setpoint": 30.0,
538 "pid": {
539 "samplePeriod": 1.0,
540 "positiveHysteresis": 1.0,
541 "negativeHysteresis": 1.0,
542 "isCeiling": false,
543 "reading": {
544 "0": 45,
545 "1": 46,
546 "2": 47,
547 "3": 48,
548 "4": 49,
549 "5": 50,
550 "6": 51,
551 "7": 52,
552 "8": 53,
553 "9": 54,
554 "10": 55,
555 "11": 56,
556 "12": 57,
557 "13": 58,
558 "14": 59,
559 "15": 60,
560 "16": 61,
561 "17": 62,
562 "18": 63,
563 "19": 64
564 },
565 "output": {
566 "0": 10,
567 "1": 10,
568 "2": 13,
569 "3": 15,
570 "4": 18,
571 "5": 21,
572 "6": 24,
573 "7": 26,
574 "8": 28,
575 "9": 30,
576 "10": 32,
577 "11": 34,
578 "12": 36,
579 "13": 38,
580 "14": 40,
581 "15": 41,
582 "16": 42,
583 "17": 43,
584 "18": 44,
585 "19": 45
586 }
587 }
588 },
589 {
590 "name": "nvme20",
591 "type": "stepwise",
592 "inputs": ["nvme2"],
593 "setpoint": 30.0,
594 "pid": {
595 "samplePeriod": 1.0,
596 "positiveHysteresis": 1.0,
597 "negativeHysteresis": 1.0,
598 "isCeiling": false,
599 "reading": {
600 "0": 45,
601 "1": 46,
602 "2": 47,
603 "3": 48,
604 "4": 49,
605 "5": 50,
606 "6": 51,
607 "7": 52,
608 "8": 53,
609 "9": 54,
610 "10": 55,
611 "11": 56,
612 "12": 57,
613 "13": 58,
614 "14": 59,
615 "15": 60,
616 "16": 61,
617 "17": 62,
618 "18": 63,
619 "19": 64
620 },
621 "output": {
622 "0": 10,
623 "1": 10,
624 "2": 13,
625 "3": 15,
626 "4": 18,
627 "5": 21,
628 "6": 24,
629 "7": 26,
630 "8": 28,
631 "9": 30,
632 "10": 32,
633 "11": 34,
634 "12": 36,
635 "13": 38,
636 "14": 40,
637 "15": 41,
638 "16": 42,
639 "17": 43,
640 "18": 44,
641 "19": 45
642 }
643 }
644 },
645 {
646 "name": "nvme30",
647 "type": "stepwise",
648 "inputs": ["nvme3"],
649 "setpoint": 30.0,
650 "pid": {
651 "samplePeriod": 1.0,
652 "positiveHysteresis": 1.0,
653 "negativeHysteresis": 1.0,
654 "isCeiling": false,
655 "reading": {
656 "0": 45,
657 "1": 46,
658 "2": 47,
659 "3": 48,
660 "4": 49,
661 "5": 50,
662 "6": 51,
663 "7": 52,
664 "8": 53,
665 "9": 54,
666 "10": 55,
667 "11": 56,
668 "12": 57,
669 "13": 58,
670 "14": 59,
671 "15": 60,
672 "16": 61,
673 "17": 62,
674 "18": 63,
675 "19": 64
676 },
677 "output": {
678 "0": 10,
679 "1": 10,
680 "2": 13,
681 "3": 15,
682 "4": 18,
683 "5": 21,
684 "6": 24,
685 "7": 26,
686 "8": 28,
687 "9": 30,
688 "10": 32,
689 "11": 34,
690 "12": 36,
691 "13": 38,
692 "14": 40,
693 "15": 41,
694 "16": 42,
695 "17": 43,
696 "18": 44,
697 "19": 45
698 }
699 }
700 },
701 {
702 "name": "nvme40",
703 "type": "stepwise",
704 "inputs": ["nvme4"],
705 "setpoint": 30.0,
706 "pid": {
707 "samplePeriod": 1.0,
708 "positiveHysteresis": 1.0,
709 "negativeHysteresis": 1.0,
710 "isCeiling": false,
711 "reading": {
712 "0": 45,
713 "1": 46,
714 "2": 47,
715 "3": 48,
716 "4": 49,
717 "5": 50,
718 "6": 51,
719 "7": 52,
720 "8": 53,
721 "9": 54,
722 "10": 55,
723 "11": 56,
724 "12": 57,
725 "13": 58,
726 "14": 59,
727 "15": 60,
728 "16": 61,
729 "17": 62,
730 "18": 63,
731 "19": 64
732 },
733 "output": {
734 "0": 10,
735 "1": 10,
736 "2": 13,
737 "3": 15,
738 "4": 18,
739 "5": 21,
740 "6": 24,
741 "7": 26,
742 "8": 28,
743 "9": 30,
744 "10": 32,
745 "11": 34,
746 "12": 36,
747 "13": 38,
748 "14": 40,
749 "15": 41,
750 "16": 42,
751 "17": 43,
752 "18": 44,
753 "19": 45
754 }
755 }
756 },
757 {
758 "name": "nvme50",
759 "type": "stepwise",
760 "inputs": ["nvme5"],
761 "setpoint": 30.0,
762 "pid": {
763 "samplePeriod": 1.0,
764 "positiveHysteresis": 1.0,
765 "negativeHysteresis": 1.0,
766 "isCeiling": false,
767 "reading": {
768 "0": 45,
769 "1": 46,
770 "2": 47,
771 "3": 48,
772 "4": 49,
773 "5": 50,
774 "6": 51,
775 "7": 52,
776 "8": 53,
777 "9": 54,
778 "10": 55,
779 "11": 56,
780 "12": 57,
781 "13": 58,
782 "14": 59,
783 "15": 60,
784 "16": 61,
785 "17": 62,
786 "18": 63,
787 "19": 64
788 },
789 "output": {
790 "0": 10,
791 "1": 10,
792 "2": 13,
793 "3": 15,
794 "4": 18,
795 "5": 21,
796 "6": 24,
797 "7": 26,
798 "8": 28,
799 "9": 30,
800 "10": 32,
801 "11": 34,
802 "12": 36,
803 "13": 38,
804 "14": 40,
805 "15": 41,
806 "16": 42,
807 "17": 43,
808 "18": 44,
809 "19": 45
810 }
811 }
812 },
813 {
814 "name": "nvme60",
815 "type": "stepwise",
816 "inputs": ["nvme6"],
817 "setpoint": 30.0,
818 "pid": {
819 "samplePeriod": 1.0,
820 "positiveHysteresis": 1.0,
821 "negativeHysteresis": 1.0,
822 "isCeiling": false,
823 "reading": {
824 "0": 45,
825 "1": 46,
826 "2": 47,
827 "3": 48,
828 "4": 49,
829 "5": 50,
830 "6": 51,
831 "7": 52,
832 "8": 53,
833 "9": 54,
834 "10": 55,
835 "11": 56,
836 "12": 57,
837 "13": 58,
838 "14": 59,
839 "15": 60,
840 "16": 61,
841 "17": 62,
842 "18": 63,
843 "19": 64
844 },
845 "output": {
846 "0": 10,
847 "1": 10,
848 "2": 13,
849 "3": 15,
850 "4": 18,
851 "5": 21,
852 "6": 24,
853 "7": 26,
854 "8": 28,
855 "9": 30,
856 "10": 32,
857 "11": 34,
858 "12": 36,
859 "13": 38,
860 "14": 40,
861 "15": 41,
862 "16": 42,
863 "17": 43,
864 "18": 44,
865 "19": 45
866 }
867 }
868 },
869 {
870 "name": "nvme70",
871 "type": "stepwise",
872 "inputs": ["nvme7"],
873 "setpoint": 30.0,
874 "pid": {
875 "samplePeriod": 1.0,
876 "positiveHysteresis": 1.0,
877 "negativeHysteresis": 1.0,
878 "isCeiling": false,
879 "reading": {
880 "0": 45,
881 "1": 46,
882 "2": 47,
883 "3": 48,
884 "4": 49,
885 "5": 50,
886 "6": 51,
887 "7": 52,
888 "8": 53,
889 "9": 54,
890 "10": 55,
891 "11": 56,
892 "12": 57,
893 "13": 58,
894 "14": 59,
895 "15": 60,
896 "16": 61,
897 "17": 62,
898 "18": 63,
899 "19": 64
900 },
901 "output": {
902 "0": 10,
903 "1": 10,
904 "2": 13,
905 "3": 15,
906 "4": 18,
907 "5": 21,
908 "6": 24,
909 "7": 26,
910 "8": 28,
911 "9": 30,
912 "10": 32,
913 "11": 34,
914 "12": 36,
915 "13": 38,
916 "14": 40,
917 "15": 41,
918 "16": 42,
919 "17": 43,
920 "18": 44,
921 "19": 45
922 }
923 }
924 }
925 ]
926 }
927 ]
928}