;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;     ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;  ;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;  ;;;;;;;;;;        ;;;;      ;;;;;;;;;  ;;;;;;     ;;;;;;;;;;;;;;;;
;;;;;;;;;;;; ;;;;;;;;;  ;  ;;;  ;;  ;;;  ;;;;;;;  ;; ;;;;  ;;;  ;;;;;;;;;;;;;;;
;;;;;;;;;;;  ;;;;;;;;;  ;;         ;;;;  ;;;;;;;  ;;;  ;;  ;;;  ;;;;;;;;;;;;;;;
;;;;;;;;         ;;;;;  ;;;;;  ;;;;;;;;;  ;;;;;  ;;;;;         ;;;;;;;;;;;;;;;;
;;;;;;;  ;;  ;;  ;;; ;;  ;;;;  ;;;;;;;;;;  ;;;  ;;;;;;;;;  ;;;;;;;;;;;;;;;;;;;;
;;;;;;;;     ;;;     ;;;       ;;;;;;;;;;;     ;;;;;;;;;;;       ;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   ;;;;;;;;;;;;;;;;
;;;;;;;;;;;;    ;;;;;;    ;;;     ;;;;;   ;;;;;;;;   ;;;;;;    ;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;  ;;;;;    ;;;  ;;    ;; ;;;  ;;;;;;  ;;;;;;;   ;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;  ;;;;;  ; ;;;    ;; ;  ;;;;;  ;;;;;  ;;;;;;   ;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;  ;;;;  ;; ;; ; ;;;; ;;;;;;;;  ;;;; ; ;; ;;;  ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;     ;;;    ;;     ;;;;;;;;;;      ;;   ;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;  ;;;;;;  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;         ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;