text = '''
愚公移山
太行、王屋二山的北面，住了一個九十歲的老翁，名叫愚公。二山佔地廣闊，擋住去路，使他
和家人往來極為不便。
一天，愚公召集家人說:「讓我們各盡其力，剷平二山，開條道路，直通豫州，你們認為怎
樣?」
大家都異口同聲贊成，只有他的妻子表示懷疑，並說:「你連開鑿一個小丘的力量都沒有，怎
可能剷平太行、王屋二山呢?況且，鑿出的土石又丟到哪裏去呢?」
大家都熱烈地說:「把土石丟進渤海裏。」
於是愚公就和兒孫，一起開挖土，把土石搬運到渤海去。
愚公的鄰居是個寡婦，有個兒子八歲也興致勃勃地走來來幫忙。
寒來暑往，他們要一年才能往返渤海一次。
住在黃河河畔的智叟，看見他們這樣辛苦，取笑愚公說:「你不是很愚蠢嗎?你已一把年紀
了，就是用盡你的氣力，也不能挖去山的一角呢?」
愚公歎息道:「你有這樣的成見，是不會明白的。你比那寡婦的小兒子還不如呢!就算我死
了，還有我的兒子，我的孫子，我的曾孫子，他們一直傳下去。而這二山是不會加大的，總有
一天，我們會把它們剷平。」
智叟聽了，無話可說:
二山的守護神被愚公的堅毅精神嚇倒，便把此事奏知天帝。天帝佩服愚公的精神，就命兩位大
力神揹走二山。
How The Foolish Old Man Moved Mountains
Yugong was a ninety-year-old man who lived at the north of two high
mountains, Mount Taixing and Mount Wangwu.
Stretching over a wide expanse of land, the mountains blocked
yugong’s way making it inconvenient for him and his family to get
around.
One day yugong gathered his family together and said,”Let’s do our
best to level these two mountains. We shall open a road that leads to
Yuzhou. What do you think?”
All but his wife agreed with him.
“You don’t have the strength to cut even a small mound,” muttered his
wife. “How on earth do you suppose you can level Mount Taixin and
Mount Wanwu? Moreover, where will all the earth and rubble go?”
“Dump them into the Sea of Bohai!” said everyone.
So Yugong, his sons, and his grandsons started to break up rocks and
remove the earth. They transported the earth and rubble to the Sea of
Bohai.
Now Yugong’s neighbour was a widow who had an only child eight years
old. Evening the young boy offered his help eagerly.
Summer went by and winter came. It took Yugong and his crew a full
year to travel back and forth once.
On the bank of the Yellow River dwelled an old man much respected for
his wisdom. When he saw their back-breaking labour, he ridiculed
Yugong saying,”Aren’t you foolish, my friend? You are very old now,
and with whatever remains of your waning strength, you won’t be able
to remove even a corner of the mountain.”
Yugong uttered a sigh and said,”A biased person like you will never
understand. You can’t even compare with the widow’s little boy!”
“Even if I were dead, there will still be my children, my
grandchildren, my great grandchildren, my great great grandchildren.
They descendants will go on forever. But these mountains will not
grow any taler. We shall level them one day!” he declared with
confidence.
The wise old man was totally silenced.
When the guardian gods of the mountains saw how determined Yugong and
his crew were, they were struck with fear and reported the incident
to the Emperor of Heavens.
Filled with admiration for Yugong, the Emperor of Heavens ordered two
mighty gods to carry the mountains away.
'''
from mymodule import stats_word
result = stats_word.stats_text(text)
text_test_1 = 'hello, world'
result_test_1 = stats_word.stats_text_en(text_test_1)
print(result_test_1)
text_test_2 = 123456789
try:
    print(stats_word.stats_text_en(text_test_2))
except Exception as error:
    print(error)


package com.kepler.generic.reflect;

import java.util.HashMap;
import java.util.Map;

/**
 * @author KimShen
 *
 */
abstract public class GenericUtils {

	/**
	 * 原生类型映射
	 */
	private static final Map<String, Class<?>> PRIMITIVE = new HashMap<String, Class<?>>();

	static {
		GenericUtils.PRIMITIVE.put(boolean.class.getName(), boolean.class);
		GenericUtils.PRIMITIVE.put(double.class.getName(), double.class);
		GenericUtils.PRIMITIVE.put(short.class.getName(), short.class);
		GenericUtils.PRIMITIVE.put(float.class.getName(), float.class);
		GenericUtils.PRIMITIVE.put(long.class.getName(), long.class);
		GenericUtils.PRIMITIVE.put(byte.class.getName(), byte.class);
		GenericUtils.PRIMITIVE.put(int.class.getName(), int.class);
	}

	public static boolean contains(String name) {
		return GenericUtils.PRIMITIVE.containsKey(name);
	}

	public static Class<?> get(String name) {
		return GenericUtils.PRIMITIVE.get(name);
	}
}


Abstract Refinements {#induction}
=================================

Decoupling Invariants & Code
----------------------------

Abstract refinements decouple invariants from code

**Next:** Precise Specifications for HOFs

\begin{code}
module Loop where
import Prelude hiding ((!!), foldr, length, (++))
import Data.Set hiding (insert, foldr,size,filter, append)

-- import Measures
import Language.Haskell.Liquid.Prelude
{-@ LIQUID "--no-termination" @-}
{-@ LIQUID "--short-names" @-}

{-@ measure size  :: (L a) -> Int
    size (N)      = 0
    size (C x xs) = 1 + (size xs)  @-}

{-@ measure elems :: L a -> (Set a)
    elems (N)      = (Set_empty 0)
    elems (C x xs) = (Set_cup (Set_sng x) (elems xs))
  @-}

{-@ type UnElems Xs Ys = {v:_ | elems v = Set_cup (elems Xs) (elems Ys)} @-}

size  :: L a -> Int
add    :: Int -> Int -> Int
loop   :: Int -> Int -> α -> (Int -> α -> α) -> α
ifoldr :: (L a -> a -> b -> b) -> b -> L a -> b

\end{code}

Structural Induction
====================

Example: Lists
--------------

\begin{code}
data L a = N
         | C a (L a)
\end{code}

Lets write a generic loop over lists ...

Example: `foldr`
----------------

\begin{code}
foldr :: (α -> β -> β) -> β -> L α -> β
foldr f acc N        = acc
foldr f acc (C x xs) = f x (foldr f acc xs)
\end{code}

Problem
-------

Recall our *failed attempt* to write `append` with `foldr`

\begin{spec}
{-@ app :: xs:_ -> ys:_ -> UnElems xs ys @-}
app xs ys = foldr C ys xs
\end{spec}

- Property holds after *last* iteration
- Cannot instantiate `α` with `UnElems xs ys`

Problem
-------

Recall our *failed attempt* to write `append` with `foldr`

\begin{spec}
{-@ app :: xs:_ -> ys:_ -> UnElems xs ys @-}
app xs ys = foldr C ys xs
\end{spec}

Need to **relate** each *iteration* with *accumulator* `acc`

Solution: Inductive `foldr`
---------------------------

Lets brace ourselves for the type...

Solution: Inductive `foldr`
---------------------------

\begin{code}
{-@ ifoldr ::
     forall a b
 b -> Prop>.
      (xs:_ -> x:_ -> b
 -> b
)
    -> b

    -> ys:L a
    -> b
                            @-}
ifoldr f b N        = b
ifoldr f b (C x xs) = f xs x (ifoldr f b xs)
\end{code}

Lets step through the type...

`ifoldr`: Abstract Refinement
-----------------------------

\begin{spec}

p    :: L a -> b -> Prop
step :: xs:_ -> x:_ -> b
 -> b

base :: b

ys   :: L a
out  ::  b

\end{spec}

`(p xs b)` relates `b` with **folded** `xs`

`p :: L a -> b -> Prop`

`ifoldr`: Base Case
-------------------

\begin{spec}

p    :: L a -> b -> Prop
step :: xs:_ -> x:_ -> b
 -> b

base :: b

ys   :: L a
out  :: b

\end{spec}

`base` is related to **empty** list `N`

`base :: b<p N>`

`ifoldr`: Ind. Step
-------------------

\begin{spec}

p    :: L a -> b -> Prop
step :: xs:_ -> x:_ -> b
 -> b

base :: b

ys   :: L a
out  :: b

\end{spec}

`step` **extends** relation from `xs` to `C x xs`

`step :: xs:_ -> x:_ -> b<p xs> -> b<p (C x xs)>`

`ifoldr`: Output
----------------

\begin{spec}

p    :: L a -> b -> Prop
step :: xs:_ -> x:_ -> b
 -> b

base :: b

ys   :: L a
out  :: b

\end{spec}

Hence, relation holds between `out` and **entire input** list `ys`

`out :: b<p ys>`

Using `ifoldr`: Size
-------------------

We can now verify

\begin{code}
{-@ size :: xs:_ -> {v:Int| v = size xs} @-}
size     = ifoldr (\_ _ n -> n + 1) 0
\end{code}

by *automatically instantiating* `p` with

`\xs acc -> acc = size xs`

Using `foldr`: Append
---------------------

We can now verify

\begin{code}
{-@ (++) :: xs:_ -> ys:_ -> UnElems xs ys @-}
xs ++ ys = ifoldr (\_ -> C) ys xs
\end{code}

By *automatically* instantiating `p` with

`\xs acc -> elems acc = Set_cup (elems xs) (elems ys)`

More Examples
-------------

Induction over *structures* from `GHC.List`

+ `length`
+ `append`
+ `filter`
+ ...

[DEMO 02_AbstractRefinements.hs #2](../hs/02_AbstractRefinements.hs)

Recap
-----

Abstract refinements *decouple* **invariant** from **iteration**

**Precise** specs for higher-order functions.

**Automatic** checking and instantiation by SMT.

Recap
-----

1. Refinements: Types + Predicates
2. Subtyping: SMT Implication
3. Measures: Strengthened Constructors
4. Abstract: Refinements over Type Signatures
    +
**Functions**

    +
**Recursive Data** [continue]

5.
[Evaluation](11_Evaluation.lhs.slides.html)


	<?php
		echo $this->ViewCounter->header('day_of_week', $dayOfWeek);
		if (empty($dayOfWeek['sub_total'])) {
			echo $this->ViewCounter->noData();
		}
		else{
			echo $this->Charts->draw(
				array(
					'bar' => array(
						'type' => 'vertical_group'
					)
				),
				array(
					'data' => array($dayOfWeek['sub_total']),
					'axes' => array(
						'x' => $dayOfWeek['day_of_week'],
						'y' => true
					),
					'size' => array('width' => 450, 'height' => 130),
					'extra' => array('html' => array('class' => 'chart')),
					'spacing' => array(
						'padding' => 2,
						'grouping' => 10,
						'width' => 30,
						'type' => 'absolute'
					),
					'color' => array(
						'series' => array(
							array('0d5c05')
						)
					),
					'legend' => array(
						'position' => 'right',
						'order' => 'default',
						'labels' => array(
							__d('view_counter', 'Views')
						)
					),
				)
			);
		}
	?>


(kicad_pcb (version 4) (host pcbnew "(2014-08-05 BZR 5054)-product")

  (general
    (links 36)
    (no_connects 0)
    (area 146.9984 92.8984 164.465656 112.3572)
    (thickness 1.6)
    (drawings 0)
    (tracks 108)
    (zones 0)
    (modules 12)
    (nets 54)
  )

  (page A4)
  (layers
    (0 F.Cu signal)
    (31 B.Cu signal)
    (32 B.Adhes user)
    (33 F.Adhes user)
    (34 B.Paste user)
    (35 F.Paste user)
    (36 B.SilkS user)
    (37 F.SilkS user)
    (38 B.Mask user)
    (39 F.Mask user)
    (40 Dwgs.User user)
    (41 Cmts.User user)
    (42 Eco1.User user)
    (43 Eco2.User user)
    (44 Edge.Cuts user)
    (45 Margin user)
    (46 B.CrtYd user)
    (47 F.CrtYd user)
    (48 B.Fab user)
    (49 F.Fab user)
  )

  (setup
    (last_trace_width 0.1016)
    (trace_clearance 0.1016)
    (zone_clearance 0.2032)
    (zone_45_only no)
    (trace_min 0.1016)
    (segment_width 0.2)
    (edge_width 0.1)
    (via_size 0.889)
    (via_drill 0.635)
    (via_min_size 0.889)
    (via_min_drill 0.508)
    (uvia_size 0.508)
    (uvia_drill 0.127)
    (uvias_allowed no)
    (uvia_min_size 0.508)
    (uvia_min_drill 0.127)
    (pcb_text_width 0.3)
    (pcb_text_size 1.5 1.5)
    (mod_edge_width 0.15)
    (mod_text_size 1 1)
    (mod_text_width 0.15)
    (pad_size 0.2 0.2)
    (pad_drill 0)
    (pad_to_mask_clearance 0)
    (aux_axis_origin 0 0)
    (visible_elements FFFCFF7F)
    (pcbplotparams
      (layerselection 0x00000_00000001)
      (usegerberextensions false)
      (excludeedgelayer true)
      (linewidth 0.100000)
      (plotframeref false)
      (viasonmask false)
      (mode 1)
      (useauxorigin false)
      (hpglpennumber 1)
      (hpglpenspeed 20)
      (hpglpendiameter 15)
      (hpglpenoverlay 2)
      (psnegative false)
      (psa4output false)
      (plotreference true)
      (plotvalue true)
      (plotinvisibletext false)
      (padsonsilk false)
      (subtractmaskfromsilk false)
      (outputformat 5)
      (mirror true)
      (drillshape 0)
      (scaleselection 1)
      (outputdirectory pdfs/))
  )

  (net 0 "")
  (net 1 "Net-(C1-Pad1)")
  (net 2 GND)
  (net 3 "Net-(C2-Pad1)")
  (net 4 "Net-(C3-Pad1)")
  (net 5 "Net-(C4-Pad2)")
  (net 6 "Net-(D1-Pad1)")
  (net 7 +BATT)
  (net 8 SWDIO)
  (net 9 SWCLK)
  (net 10 LED)
  (net 11 "Net-(U1-PadC1)")
  (net 12 "Net-(U1-PadD1)")
  (net 13 "Net-(U1-PadG1)")
  (net 14 "Net-(U1-PadE2)")
  (net 15 "Net-(U1-PadF2)")
  (net 16 "Net-(U1-PadG2)")
  (net 17 "Net-(U1-PadE3)")
  (net 18 "Net-(U1-PadF3)")
  (net 19 "Net-(U1-PadG3)")
  (net 20 "Net-(U1-PadH4)")
  (net 21 "Net-(U1-PadA5)")
  (net 22 "Net-(U1-PadB5)")
  (net 23 "Net-(U1-PadC5)")
  (net 24 "Net-(U1-PadH5)")
  (net 25 "Net-(U1-PadA6)")
  (net 26 "Net-(U1-PadB6)")
  (net 27 "Net-(U1-PadC6)")
  (net 28 "Net-(U1-PadH6)")
  (net 29 "Net-(U1-PadA7)")
  (net 30 "Net-(U1-PadB7)")
  (net 31 "Net-(U1-PadC7)")
  (net 32 "Net-(U1-PadE7)")
  (net 33 "Net-(U1-PadF7)")
  (net 34 "Net-(U1-PadG7)")
  (net 35 "Net-(U1-PadH7)")
  (net 36 "Net-(U1-PadA8)")
  (net 37 "Net-(U1-PadD8)")
  (net 38 "Net-(U1-PadE8)")
  (net 39 "Net-(U1-PadF8)")
  (net 40 "Net-(U1-PadG8)")
  (net 41 "Net-(U1-PadH8)")
  (net 42 "Net-(U1-PadE9)")
  (net 43 "Net-(U1-PadF9)")
  (net 44 "Net-(U1-PadH1)")
  (net 45 "Net-(U1-PadJ3)")
  (net 46 "Net-(U1-PadJ4)")
  (net 47 "Net-(U1-PadJ5)")
  (net 48 "Net-(U1-PadJ6)")
  (net 49 "Net-(U1-PadJ7)")
  (net 50 "Net-(U1-PadJ8)")
  (net 51 "Net-(U1-PadH9)")
  (net 52 "Net-(C5-Pad1)")
  (net 53 "Net-(ANT1-Pad2)")

  (net_class Default "This is the default net class."
    (clearance 0.1016)
    (trace_width 0.1016)
    (via_dia 0.889)
    (via_drill 0.635)
    (uvia_dia 0.508)
    (uvia_drill 0.127)
    (add_net +BATT)
    (add_net LED)
    (add_net "Net-(C1-Pad1)")
    (add_net "Net-(C2-Pad1)")
    (add_net "Net-(C3-Pad1)")
    (add_net "Net-(C4-Pad2)")
    (add_net "Net-(C5-Pad1)")
    (add_net "Net-(D1-Pad1)")
    (add_net "Net-(U1-PadA5)")
    (add_net "Net-(U1-PadA6)")
    (add_net "Net-(U1-PadA7)")
    (add_net "Net-(U1-PadA8)")
    (add_net "Net-(U1-PadB5)")
    (add_net "Net-(U1-PadB6)")
    (add_net "Net-(U1-PadB7)")
    (add_net "Net-(U1-PadC1)")
    (add_net "Net-(U1-PadC5)")
    (add_net "Net-(U1-PadC6)")
    (add_net "Net-(U1-PadC7)")
    (add_net "Net-(U1-PadD1)")
    (add_net "Net-(U1-PadD8)")
    (add_net "Net-(U1-PadE2)")
    (add_net "Net-(U1-PadE3)")
    (add_net "Net-(U1-PadE7)")
    (add_net "Net-(U1-PadE8)")
    (add_net "Net-(U1-PadE9)")
    (add_net "Net-(U1-PadF2)")
    (add_net "Net-(U1-PadF3)")
    (add_net "Net-(U1-PadF7)")
    (add_net "Net-(U1-PadF8)")
    (add_net "Net-(U1-PadF9)")
    (add_net "Net-(U1-PadG1)")
    (add_net "Net-(U1-PadG2)")
    (add_net "Net-(U1-PadG3)")
    (add_net "Net-(U1-PadG7)")
    (add_net "Net-(U1-PadG8)")
    (add_net "Net-(U1-PadH1)")
    (add_net "Net-(U1-PadH4)")
    (add_net "Net-(U1-PadH5)")
    (add_net "Net-(U1-PadH6)")
    (add_net "Net-(U1-PadH7)")
    (add_net "Net-(U1-PadH8)")
    (add_net "Net-(U1-PadH9)")
    (add_net "Net-(U1-PadJ3)")
    (add_net "Net-(U1-PadJ4)")
    (add_net "Net-(U1-PadJ5)")
    (add_net "Net-(U1-PadJ6)")
    (add_net "Net-(U1-PadJ7)")
    (add_net "Net-(U1-PadJ8)")
    (add_net SWCLK)
    (add_net SWDIO)
  )

  (net_class ANT ""
    (clearance 0.1016)
    (trace_width 0.254)
    (via_dia 0.889)
    (via_drill 0.635)
    (uvia_dia 0.508)
    (uvia_drill 0.127)
    (add_net GND)
    (add_net "Net-(ANT1-Pad2)")
  )

  (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B59067)
    (at 153.75 102.5 270)
    (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)")
    (tags "capacitor 0402")
    (path /54B59137)
    (attr smd)
    (fp_text reference C1 (at 0 -1.7 270) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value 12p (at 0 1.7 270) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15))
    (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 1 "Net-(C1-Pad1)"))
    (pad 2 smd rect (at 0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (model Capacitors_SMD/C_0402.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B58E0D)
    (at 159.004 100.711)
    (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)")
    (tags "capacitor 0402")
    (path /54B591B6)
    (attr smd)
    (fp_text reference C2 (at 0 -1.7) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value 12p (at 0 1.7) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15))
    (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 3 "Net-(C2-Pad1)"))
    (pad 2 smd rect (at 0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (model Capacitors_SMD/C_0402.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B59E9D)
    (at 159.004 102.1588)
    (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)")
    (tags "capacitor 0402")
    (path /54B58D67)
    (attr smd)
    (fp_text reference C3 (at 0 -1.7) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value 100n (at 0 1.7) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15))
    (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 4 "Net-(C3-Pad1)"))
    (pad 2 smd rect (at 0.55 0) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (model Capacitors_SMD/C_0402.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 54B58E25)
    (at 154.15 106.55 90)
    (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)")
    (tags "capacitor 0402")
    (path /54B58DD5)
    (attr smd)
    (fp_text reference C4 (at 0 -1.7 90) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value 100n (at 0 1.7 90) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15))
    (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.55 0 90) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad 2 smd rect (at 0.55 0 90) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 5 "Net-(C4-Pad2)"))
    (model Capacitors_SMD/C_0402.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module SMD_Packages:SMD-0805 (layer F.Cu) (tedit 54B58D88) (tstamp 54B58E32)
    (at 162.0266 104.9782 90)
    (path /54B599BA)
    (attr smd)
    (fp_text reference D1 (at 0 -0.3175 90) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value LED (at 0 0.381 90) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_circle (center -1.651 0.762) (end -1.651 0.635) (layer F.SilkS) (width 0.15))
    (fp_line (start -0.508 0.762) (end -1.524 0.762) (layer F.SilkS) (width 0.15))
    (fp_line (start -1.524 0.762) (end -1.524 -0.762) (layer F.SilkS) (width 0.15))
    (fp_line (start -1.524 -0.762) (end -0.508 -0.762) (layer F.SilkS) (width 0.15))
    (fp_line (start 0.508 -0.762) (end 1.524 -0.762) (layer F.SilkS) (width 0.15))
    (fp_line (start 1.524 -0.762) (end 1.524 0.762) (layer F.SilkS) (width 0.15))
    (fp_line (start 1.524 0.762) (end 0.508 0.762) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask)
      (net 6 "Net-(D1-Pad1)"))
    (pad 2 smd rect (at 0.9525 0 90) (size 0.889 1.397) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (model SMD_Packages/SMD-0805.wrl
      (at (xyz 0 0 0))
      (scale (xyz 0.1000000014901161 0.1000000014901161 0.1000000014901161))
      (rotate (xyz 0 0 0))
    )
  )

  (module Pin_Headers:Pin_Header_Straight_1x04 (layer F.Cu) (tedit 54B58D8A) (tstamp 54B58E41)
    (at 156.7942 109.1946 180)
    (descr "Through hole pin header")
    (tags "pin header")
    (path /54B593BB)
    (fp_text reference P1 (at 0 -2.286 180) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value CONN_01X04 (at 0 0 180) (layer F.SilkS) hide
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -2.54 1.27) (end 5.08 1.27) (layer F.SilkS) (width 0.15))
    (fp_line (start -2.54 -1.27) (end 5.08 -1.27) (layer F.SilkS) (width 0.15))
    (fp_line (start -5.08 -1.27) (end -2.54 -1.27) (layer F.SilkS) (width 0.15))
    (fp_line (start 5.08 1.27) (end 5.08 -1.27) (layer F.SilkS) (width 0.15))
    (fp_line (start -2.54 -1.27) (end -2.54 1.27) (layer F.SilkS) (width 0.15))
    (fp_line (start -5.08 -1.27) (end -5.08 1.27) (layer F.SilkS) (width 0.15))
    (fp_line (start -5.08 1.27) (end -2.54 1.27) (layer F.SilkS) (width 0.15))
    (pad 1 thru_hole rect (at -3.81 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
      (net 2 GND))
    (pad 2 thru_hole oval (at -1.27 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
      (net 7 +BATT))
    (pad 3 thru_hole oval (at 1.27 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
      (net 8 SWDIO))
    (pad 4 thru_hole oval (at 3.81 0 180) (size 1.7272 2.032) (drill 1.016) (layers *.Cu *.Mask F.SilkS)
      (net 9 SWCLK))
    (model Pin_Headers/Pin_Header_Straight_1x04.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module Resistors_SMD:R_0603 (layer F.Cu) (tedit 5415CC62) (tstamp 54B59E20)
    (at 160.0454 105.0544 270)
    (descr "Resistor SMD 0603, reflow soldering, Vishay (see dcrcw.pdf)")
    (tags "resistor 0603")
    (path /54B59A45)
    (attr smd)
    (fp_text reference R1 (at 0 -1.9 270) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value R (at 0 1.9 270) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -1.3 -0.8) (end 1.3 -0.8) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.3 0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.3 -0.8) (end -1.3 0.8) (layer F.CrtYd) (width 0.05))
    (fp_line (start 1.3 -0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05))
    (fp_line (start 0.5 0.675) (end -0.5 0.675) (layer F.SilkS) (width 0.15))
    (fp_line (start -0.5 -0.675) (end 0.5 -0.675) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask)
      (net 10 LED))
    (pad 2 smd rect (at 0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask)
      (net 6 "Net-(D1-Pad1)"))
    (model Resistors_SMD/R_0603.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module Crystals_Oscillators_SMD:CX2520DB (layer F.Cu) (tedit 544FEDED) (tstamp 54B58E9A)
    (at 156.1084 101.3714)
    (path /54B5903E)
    (fp_text reference X1 (at 0 -2.25) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value CRYSTAL (at 0 2.5) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -1.25 1) (end 1.25 1) (layer F.SilkS) (width 0.15))
    (fp_line (start 1.25 1) (end 1.25 -1) (layer F.SilkS) (width 0.15))
    (fp_line (start 1.25 -1) (end -1.25 -1) (layer F.SilkS) (width 0.15))
    (fp_line (start -1.25 -1) (end -1.25 1) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.9 0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask)
      (net 1 "Net-(C1-Pad1)"))
    (pad 2 smd rect (at 0.9 -0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask)
      (net 3 "Net-(C2-Pad1)"))
    (pad 3 smd rect (at 0.9 0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask))
    (pad 4 smd rect (at -0.9 -0.65) (size 1.2 1) (layers F.Cu F.Paste F.Mask))
  )

  (module NRF51:WLCSP62 (layer F.Cu) (tedit 54B59368) (tstamp 54B59DAD)
    (at 156.9212 105.1306)
    (path /54B58C30)
    (fp_text reference U1 (at 0 3.2) (layer F.SilkS)
      (effects (font (size 1.2 1.2) (thickness 0.2)))
    )
    (fp_text value nRF51x22-CEAA (at 0 -3.2) (layer F.SilkS)
      (effects (font (size 1.2 1.2) (thickness 0.2)))
    )
    (fp_line (start -1.6 -2) (end -2 -1.6) (layer F.SilkS) (width 0.2))
    (fp_line (start -2 -1.6) (end -2 2) (layer F.SilkS) (width 0.2))
    (fp_line (start -2 2) (end 2 2) (layer F.SilkS) (width 0.2))
    (fp_line (start 2 2) (end 2 -2) (layer F.SilkS) (width 0.2))
    (fp_line (start 2 -2) (end -1.6 -2) (layer F.SilkS) (width 0.2))
    (pad A1 smd circle (at -1.6 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 7 +BATT))
    (pad B1 smd circle (at -1.6 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad C1 smd circle (at -1.6 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 11 "Net-(U1-PadC1)"))
    (pad D1 smd circle (at -1.6 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 12 "Net-(U1-PadD1)"))
    (pad E1 smd circle (at -1.6 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 52 "Net-(C5-Pad1)"))
    (pad F1 smd circle (at -1.6 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 5 "Net-(C4-Pad2)"))
    (pad G1 smd circle (at -1.6 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 13 "Net-(U1-PadG1)"))
    (pad H1 smd circle (at -1.6 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 44 "Net-(U1-PadH1)"))
    (pad A2 smd circle (at -1.2 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 1 "Net-(C1-Pad1)"))
    (pad E2 smd circle (at -1.2 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 14 "Net-(U1-PadE2)"))
    (pad F2 smd circle (at -1.2 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 15 "Net-(U1-PadF2)"))
    (pad G2 smd circle (at -1.2 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 16 "Net-(U1-PadG2)"))
    (pad H2 smd circle (at -1.2 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 9 SWCLK))
    (pad J2 smd circle (at -1.2 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 8 SWDIO))
    (pad A3 smd circle (at -0.8 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 3 "Net-(C2-Pad1)"))
    (pad E3 smd circle (at -0.8 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 17 "Net-(U1-PadE3)"))
    (pad F3 smd circle (at -0.8 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 18 "Net-(U1-PadF3)"))
    (pad G3 smd circle (at -0.8 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 19 "Net-(U1-PadG3)"))
    (pad H3 smd circle (at -0.8 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad J3 smd circle (at -0.8 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 45 "Net-(U1-PadJ3)"))
    (pad A4 smd circle (at -0.4 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 4 "Net-(C3-Pad1)"))
    (pad B4 smd circle (at -0.4 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad G4 smd circle (at -0.4 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad H4 smd circle (at -0.4 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 20 "Net-(U1-PadH4)"))
    (pad J4 smd circle (at -0.4 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 46 "Net-(U1-PadJ4)"))
    (pad A5 smd circle (at 0 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 21 "Net-(U1-PadA5)"))
    (pad B5 smd circle (at 0 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 22 "Net-(U1-PadB5)"))
    (pad C5 smd circle (at 0 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 23 "Net-(U1-PadC5)"))
    (pad G5 smd circle (at 0 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad H5 smd circle (at 0 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 24 "Net-(U1-PadH5)"))
    (pad J5 smd circle (at 0 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 47 "Net-(U1-PadJ5)"))
    (pad A6 smd circle (at 0.4 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 25 "Net-(U1-PadA6)"))
    (pad B6 smd circle (at 0.4 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 26 "Net-(U1-PadB6)"))
    (pad C6 smd circle (at 0.4 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 27 "Net-(U1-PadC6)"))
    (pad G6 smd circle (at 0.4 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad H6 smd circle (at 0.4 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 28 "Net-(U1-PadH6)"))
    (pad J6 smd circle (at 0.4 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 48 "Net-(U1-PadJ6)"))
    (pad A7 smd circle (at 0.8 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 29 "Net-(U1-PadA7)"))
    (pad B7 smd circle (at 0.8 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 30 "Net-(U1-PadB7)"))
    (pad C7 smd circle (at 0.8 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 31 "Net-(U1-PadC7)"))
    (pad D7 smd circle (at 0.8 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad E7 smd circle (at 0.8 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 32 "Net-(U1-PadE7)"))
    (pad F7 smd circle (at 0.8 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 33 "Net-(U1-PadF7)"))
    (pad G7 smd circle (at 0.8 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 34 "Net-(U1-PadG7)"))
    (pad H7 smd circle (at 0.8 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 35 "Net-(U1-PadH7)"))
    (pad J7 smd circle (at 0.8 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 49 "Net-(U1-PadJ7)"))
    (pad A8 smd circle (at 1.2 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 36 "Net-(U1-PadA8)"))
    (pad B8 smd circle (at 1.2 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 7 +BATT))
    (pad C8 smd circle (at 1.2 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad D8 smd circle (at 1.2 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 37 "Net-(U1-PadD8)"))
    (pad E8 smd circle (at 1.2 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 38 "Net-(U1-PadE8)"))
    (pad F8 smd circle (at 1.2 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 39 "Net-(U1-PadF8)"))
    (pad G8 smd circle (at 1.2 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 40 "Net-(U1-PadG8)"))
    (pad H8 smd circle (at 1.2 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 41 "Net-(U1-PadH8)"))
    (pad J8 smd circle (at 1.2 1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 50 "Net-(U1-PadJ8)"))
    (pad A9 smd circle (at 1.6 -1.6) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask))
    (pad B9 smd circle (at 1.6 -1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 7 +BATT))
    (pad C9 smd circle (at 1.6 -0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad D9 smd circle (at 1.6 -0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 10 LED))
    (pad E9 smd circle (at 1.6 0) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 42 "Net-(U1-PadE9)"))
    (pad F9 smd circle (at 1.6 0.4) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 43 "Net-(U1-PadF9)"))
    (pad G9 smd circle (at 1.6 0.8) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (pad H9 smd circle (at 1.6 1.2) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 51 "Net-(U1-PadH9)"))
  )

  (module Capacitors_SMD:C_0402 (layer F.Cu) (tedit 5415D599) (tstamp 55048D3E)
    (at 153 106.55 270)
    (descr "Capacitor SMD 0402, reflow soldering, AVX (see smccp.pdf)")
    (tags "capacitor 0402")
    (path /550483E1)
    (attr smd)
    (fp_text reference C5 (at 0 -1.7 270) (layer F.SilkS)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_text value 2n2 (at 0 1.7 270) (layer F.Fab)
      (effects (font (size 1 1) (thickness 0.15)))
    )
    (fp_line (start -1.15 -0.6) (end 1.15 -0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start -1.15 -0.6) (end -1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 1.15 -0.6) (end 1.15 0.6) (layer F.CrtYd) (width 0.05))
    (fp_line (start 0.25 -0.475) (end -0.25 -0.475) (layer F.SilkS) (width 0.15))
    (fp_line (start -0.25 0.475) (end 0.25 0.475) (layer F.SilkS) (width 0.15))
    (pad 1 smd rect (at -0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 52 "Net-(C5-Pad1)"))
    (pad 2 smd rect (at 0.55 0 270) (size 0.6 0.5) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
    (model Capacitors_SMD.3dshapes/C_0402.wrl
      (at (xyz 0 0 0))
      (scale (xyz 1 1 1))
      (rotate (xyz 0 0 0))
    )
  )

  (module ANT:ANT-2.4GHz (layer F.Cu) (tedit 54517711) (tstamp 55049531)
    (at 149.35 106.95 90)
    (path /55047C3D)
    (fp_text reference ANT1 (at -2.5 1.5 90) (layer F.SilkS)
      (effects (font (size 0.4 0.4) (thickness 0.04)))
    )
    (fp_text value ANT-2.4GHz (at -2 2 90) (layer F.SilkS)
      (effects (font (size 0.4 0.4) (thickness 0.04)))
    )
    (pad 1 smd rect (at 0 0 90) (size 0.9 4.9) (layers F.Cu)
      (net 2 GND))
    (pad 3 smd rect (at 2.05 -2.7 90) (size 5 0.5) (layers F.Cu))
    (pad 2 smd rect (at 2.1 0 90) (size 0.5 4.9) (layers F.Cu)
      (net 53 "Net-(ANT1-Pad2)"))
    (pad 3 smd rect (at 4.3 -1.13 90) (size 0.5 2.64) (layers F.Cu))
    (pad 3 smd rect (at 6.8 -1.13 90) (size 0.5 2.64) (layers F.Cu))
    (pad 3 smd rect (at 5.55 -0.06 90) (size 2 0.5) (layers F.Cu))
    (pad 3 smd rect (at 7.9 -2.7 90) (size 2.7 0.5) (layers F.Cu))
    (pad 3 smd rect (at 12.6 -2.7 90) (size 2.7 0.5) (layers F.Cu))
    (pad 3 smd rect (at 9 -1.13 90) (size 0.5 2.64) (layers F.Cu))
    (pad 3 smd rect (at 11.5 -1.13 90) (size 0.5 2.64) (layers F.Cu))
    (pad 3 smd rect (at 10.25 -0.06 90) (size 2 0.5) (layers F.Cu))
    (pad 3 smd rect (at 13.7 -0.48 90) (size 0.5 3.94) (layers F.Cu))
  )

  (module NRF51:BAL-NRF02D3 (layer F.Cu) (tedit 550C7CF1) (tstamp 55048D47)
    (at 153.65 104.55 180)
    (path /550480A2)
    (fp_text reference U2 (at 0 1.95 180) (layer F.SilkS)
      (effects (font (size 1.2 1.2) (thickness 0.2)))
    )
    (fp_text value BAL-NRF02D3 (at 0 -1.95 180) (layer F.SilkS)
      (effects (font (size 1.2 1.2) (thickness 0.2)))
    )
    (fp_circle (center 0.75 -1.25) (end 1 -1.25) (layer F.SilkS) (width 0.15))
    (fp_line (start -1 -0.75) (end -1 0.75) (layer F.SilkS) (width 0.2))
    (fp_line (start -1 0.75) (end 1 0.75) (layer F.SilkS) (width 0.2))
    (fp_line (start 1 0.75) (end 1 -0.75) (layer F.SilkS) (width 0.2))
    (fp_line (start 1 -0.75) (end -1 -0.75) (layer F.SilkS) (width 0.2))
    (pad A3 smd circle (at -0.5 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 12 "Net-(U1-PadD1)"))
    (pad B3 smd circle (at -0.5 0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 11 "Net-(U1-PadC1)"))
    (pad A2 smd circle (at 0 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 52 "Net-(C5-Pad1)"))
    (pad A1 smd circle (at 0.5 -0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 53 "Net-(ANT1-Pad2)"))
    (pad B1 smd circle (at 0.5 0.25 180) (size 0.2 0.2) (layers F.Cu F.Paste F.Mask)
      (net 2 GND))
  )

  (segment (start 155.7212 102.5342) (end 155.2084 102.0214) (width 0.1016) (layer F.Cu) (net 1))
  (segment (start 155.7212 103.5306) (end 155.7212 102.5342) (width 0.1016) (layer F.Cu) (net 1))
  (segment (start 155.137 101.95) (end 155.2084 102.0214) (width 0.1016) (layer F.Cu) (net 1) (tstamp 55048FFD))
  (segment (start 153.75 101.95) (end 155.137 101.95) (width 0.1016) (layer F.Cu) (net 1))
  (segment (start 156.947646 104.7306) (end 156.7306 104.7306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.7306 104.7306) (end 156.5212 104.5212) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.5212 104.5212) (end 156.5212 104.072021) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.5212 104.072021) (end 156.5212 103.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.1212 106.3306) (end 156.5212 105.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.5212 105.9306) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 157.3212 105.9306) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 157.7212 104.7306) (end 156.947646 104.7306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.5212 103.9306) (end 155.3212 103.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.9212 104.757046) (end 156.9212 105.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 156.947646 104.7306) (end 156.9212 104.757046) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 157.7212 104.7306) (end 158.1212 104.3306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 158.1212 104.3306) (end 158.5212 104.3306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 161.2265 103.4796) (end 161.7726 104.0257) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 159.3722 103.4796) (end 161.2265 103.4796) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 161.7726 104.0257) (end 162.0266 104.0257) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 159.554 101.0626) (end 159.554 102.1588) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 159.554 100.711) (end 159.554 101.0626) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 159.3722 102.6922) (end 159.3722 103.4796) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 159.554 102.5104) (end 159.3722 102.6922) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 159.554 102.1588) (end 159.554 102.5104) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 159.3722 103.621021) (end 159.3722 103.4796) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 158.5212 104.3306) (end 158.662621 104.3306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 158.662621 104.3306) (end 159.3722 103.621021) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 155.0306 103.9306) (end 154.15 103.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55048FDD))
  (segment (start 154.15 103.05) (end 153.75 103.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55048FEF))
  (segment (start 155.3212 103.9306) (end 155.0306 103.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 154.15 107.1) (end 153 107.1) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 160.6042 108.3542) (end 160.6042 109.1946) (width 0.1016) (layer F.Cu) (net 2) (tstamp 5504935E))
  (segment (start 158.5212 105.9306) (end 159.05 105.9306) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 160.85 105.05) (end 159.4 105.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049373))
  (segment (start 159.4 105.05) (end 159.05 105.4) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049377))
  (segment (start 159.05 105.4) (end 159.05 105.9306) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049378))
  (segment (start 161.8743 104.0257) (end 160.85 105.05) (width 0.1016) (layer F.Cu) (net 2) (tstamp 55049366))
  (segment (start 162.0266 104.0257) (end 161.8743 104.0257) (width 0.1016) (layer F.Cu) (net 2))
  (segment (start 149.5 107.1) (end 149.35 106.95) (width 0.1016) (layer F.Cu) (net 2) (tstamp 5504964A) (status 30))
  (segment (start 149.5 107.1) (end 149.35 106.95) (width 0.254) (layer F.Cu) (net 2) (tstamp 5504967F) (status 30))
  (segment (start 153 107.1) (end 149.5 107.1) (width 0.254) (layer F.Cu) (net 2) (status 20))
  (segment (start 158.4436 100.7214) (end 158.454 100.711) (width 0.1016) (layer F.Cu) (net 3))
  (segment (start 157.0084 100.7214) (end 158.4436 100.7214) (width 0.1016) (layer F.Cu) (net 3))
  (segment (start 156.6786 100.7214) (end 157.0084 100.7214) (width 0.1016) (layer F.Cu) (net 3))
  (segment (start 156.1084 101.2916) (end 156.6786 100.7214) (width 0.1016) (layer F.Cu) (net 3))
  (segment (start 156.1084 103.5178) (end 156.1084 101.2916) (width 0.1016) (layer F.Cu) (net 3))
  (segment (start 156.1212 103.5306) (end 156.1084 103.5178) (width 0.1016) (layer F.Cu) (net 3))
  (segment (start 156.5212 103.389179) (end 157.014979 102.8954) (width 0.1016) (layer F.Cu) (net 4))
  (segment (start 156.5212 103.5306) (end 156.5212 103.389179) (width 0.1016) (layer F.Cu) (net 4))
  (segment (start 157.6674 102.8954) (end 158.404 102.1588) (width 0.1016) (layer F.Cu) (net 4))
  (segment (start 158.404 102.1588) (end 158.454 102.1588) (width 0.1016) (layer F.Cu) (net 4))
  (segment (start 157.014979 102.8954) (end 157.6674 102.8954) (width 0.1016) (layer F.Cu) (net 4))
  (segment (start 154.45 106) (end 154.9194 105.5306) (width 0.1016) (layer F.Cu) (net 5) (tstamp 5504901F))
  (segment (start 154.9194 105.5306) (end 155.3212 105.5306) (width 0.1016) (layer F.Cu) (net 5) (tstamp 55049021))
  (segment (start 154.15 106) (end 154.45 106) (width 0.1016) (layer F.Cu) (net 5))
  (segment (start 160.1717 105.9307) (end 160.0454 105.8044) (width 0.1016) (layer F.Cu) (net 6))
  (segment (start 162.0266 105.9307) (end 160.1717 105.9307) (width 0.1016) (layer F.Cu) (net 6))
  (segment (start 159 99.9) (end 159.05 99.9) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 159.35 99.6) (end 161.2 99.6) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 158.25 111.15) (end 158.0642 110.9642) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 159.05 99.9) (end 159.35 99.6) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 161.2 99.6) (end 163.35 101.75) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 163.35 101.75) (end 163.35 110.35) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 163.35 110.35) (end 162.55 111.15) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 158.0642 110.9642) (end 158.0642 109.1946) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 162.55 111.15) (end 158.25 111.15) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 158.5212 103.9306) (end 158.1212 103.9306) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 158.0642 109.347) (end 158.0642 109.1946) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 159 99.9) (end 159 103.593221) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 158.662621 103.9306) (end 158.5212 103.9306) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 154.1 99.6) (end 158.7 99.6) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 153 102.3) (end 153 100.7) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 153.2 102.5) (end 153 102.3) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 158.7 99.6) (end 159 99.9) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 154.2906 102.5) (end 153.2 102.5) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 159 103.593221) (end 158.662621 103.9306) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 153 100.7) (end 154.1 99.6) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 155.3212 103.5306) (end 154.2906 102.5) (width 0.1016) (layer F.Cu) (net 7))
  (segment (start 155.7212 108.9976) (end 155.5242 109.1946) (width 0.1016) (layer F.Cu) (net 8))
  (segment (start 155.7212 106.7306) (end 155.7212 108.9976) (width 0.1016) (layer F.Cu) (net 8))
  (segment (start 152.9842 109.0676) (end 152.9842 109.1946) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 152.9842 109.1946) (end 152.9842 109.0422) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 155.2018 106.85) (end 155.7212 106.3306) (width 0.1016) (layer F.Cu) (net 9) (tstamp 55049280))
  (segment (start 155.1 106.95) (end 155.2 106.85) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 155.1 107.35) (end 155.1 106.95) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 154.55 107.9) (end 155.1 107.35) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 154.1264 107.9) (end 154.55 107.9) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 152.9842 109.0422) (end 154.1264 107.9) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 155.2 106.85) (end 155.2018 106.85) (width 0.1016) (layer F.Cu) (net 9))
  (segment (start 160.0454 104.3044) (end 159.4938 104.3044) (width 0.1016) (layer F.Cu) (net 10))
  (segment (start 158.662621 104.7306) (end 158.5212 104.7306) (width 0.1016) (layer F.Cu) (net 10))
  (segment (start 159.0676 104.7306) (end 158.662621 104.7306) (width 0.1016) (layer F.Cu) (net 10))
  (segment (start 159.4938 104.3044) (end 159.0676 104.7306) (width 0.1016) (layer F.Cu) (net 10))
  (segment (start 154.1806 104.3306) (end 154.15 104.3) (width 0.1016) (layer F.Cu) (net 11) (tstamp 5504938B))
  (segment (start 155.3212 104.3306) (end 154.1806 104.3306) (width 0.1016) (layer F.Cu) (net 11))
  (segment (start 154.2194 104.7306) (end 154.15 104.8) (width 0.1016) (layer F.Cu) (net 12) (tstamp 55049388))
  (segment (start 155.3212 104.7306) (end 154.2194 104.7306) (width 0.1016) (layer F.Cu) (net 12))
  (segment (start 155.3212 105.1306) (end 154.7194 105.1306) (width 0.1016) (layer F.Cu) (net 52))
  (segment (start 154.7194 105.1306) (end 154.6 105.25) (width 0.1016) (layer F.Cu) (net 52))
  (segment (start 154.6 105.25) (end 153.65 105.25) (width 0.1016) (layer F.Cu) (net 52))
  (segment (start 153.65 105.25) (end 153.65 104.8) (width 0.1016) (layer F.Cu) (net 52) (tstamp 5504901A))
  (segment (start 153.6 105.3) (end 153.65 105.25) (width 0.1016) (layer F.Cu) (net 52) (tstamp 55049386))
  (segment (start 153 105.9) (end 153.6 105.3) (width 0.1016) (layer F.Cu) (net 52) (tstamp 55049018))
  (segment (start 153 106) (end 153 105.9) (width 0.1016) (layer F.Cu) (net 52))
  (segment (start 149.4 104.8) (end 149.35 104.85) (width 0.1016) (layer F.Cu) (net 53) (tstamp 55049543) (status 30))
  (segment (start 153.1 104.85) (end 153.15 104.8) (width 0.254) (layer F.Cu) (net 53) (tstamp 550495A4))
  (segment (start 149.35 104.85) (end 153.1 104.85) (width 0.254) (layer F.Cu) (net 53) (status 10))

  (zone (net 2) (net_name GND) (layer F.Cu) (tstamp 550C7F83) (hatch edge 0.508)
    (connect_pads (clearance 0.2032))
    (min_thickness 0.1524)
    (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5))
    (polygon
      (pts
        (xy 164 111.85) (xy 151.5 111.85) (xy 151.5 97.15) (xy 164 97.15)
      )
    )
    (filled_polygon
      (pts
        (xy 163.9238 111.318437) (xy 163.468437 111.7738) (xy 152.031563 111.7738) (xy 151.5762 111.318437) (xy 151.5762 107.6794)
        (xy 151.744424 107.6794) (xy 151.855576 107.6794) (xy 151.958267 107.636864) (xy 152.036864 107.558267) (xy 152.0794 107.455576)
        (xy 152.0794 107.02112) (xy 152.00955 106.95127) (xy 151.5762 106.95127) (xy 151.5762 106.94873) (xy 152.00955 106.94873)
        (xy 152.0794 106.87888) (xy 152.0794 106.444424) (xy 152.036864 106.341733) (xy 151.958267 106.263136) (xy 151.855576 106.2206)
        (xy 151.744424 106.2206) (xy 151.5762 106.2206) (xy 151.5762 105.3794) (xy 151.855576 105.3794) (xy 151.958267 105.336864)
        (xy 152.036864 105.258267) (xy 152.037637 105.2564) (xy 153.1 105.2564) (xy 153.195652 105.237373) (xy 153.012426 105.4206)
        (xy 152.694424 105.4206) (xy 152.591733 105.463136) (xy 152.513136 105.541733) (xy 152.4706 105.644424) (xy 152.4706 105.755576)
        (xy 152.4706 106.355576) (xy 152.513136 106.458267) (xy 152.591733 106.536864) (xy 152.623446 106.55) (xy 152.591733 106.563136)
        (xy 152.513136 106.641733) (xy 152.4706 106.744424) (xy 152.4706 107.02888) (xy 152.54045 107.09873) (xy 152.99873 107.09873)
        (xy 152.99873 107.07873) (xy 153.00127 107.07873) (xy 153.00127 107.09873) (xy 153.45955 107.09873) (xy 153.5294 107.02888)
        (xy 153.5294 106.744424) (xy 153.486864 106.641733) (xy 153.408267 106.563136) (xy 153.376553 106.55) (xy 153.408267 106.536864)
        (xy 153.486864 106.458267) (xy 153.5294 106.355576) (xy 153.5294 106.244424) (xy 153.5294 105.837574) (xy 153.6206 105.746374)
        (xy 153.6206 105.755576) (xy 153.6206 106.355576) (xy 153.663136 106.458267) (xy 153.741733 106.536864) (xy 153.773446 106.55)
        (xy 153.741733 106.563136) (xy 153.663136 106.641733) (xy 153.6206 106.744424) (xy 153.6206 107.02888) (xy 153.69045 107.09873)
        (xy 154.14873 107.09873) (xy 154.14873 107.07873) (xy 154.15127 107.07873) (xy 154.15127 107.09873) (xy 154.60955 107.09873)
        (xy 154.6794 107.02888) (xy 154.6794 106.744424) (xy 154.636864 106.641733) (xy 154.558267 106.563136) (xy 154.526553 106.55)
        (xy 154.558267 106.536864) (xy 154.636864 106.458267) (xy 154.6794 106.355576) (xy 154.6794 106.244424) (xy 154.6794 106.236217)
        (xy 154.683487 106.233487) (xy 154.7968 106.120174) (xy 154.7968 106.634168) (xy 154.872829 106.710197) (xy 154.866513 106.716513)
        (xy 154.794935 106.823638) (xy 154.7698 106.95) (xy 154.7698 107.213226) (xy 154.6794 107.303626) (xy 154.6794 107.17112)
        (xy 154.60955 107.10127) (xy 154.15127 107.10127) (xy 154.15127 107.12127) (xy 154.14873 107.12127) (xy 154.14873 107.10127)
        (xy 153.69045 107.10127) (xy 153.6206 107.17112) (xy 153.6206 107.455576) (xy 153.663136 107.558267) (xy 153.741733 107.636864)
        (xy 153.844424 107.6794) (xy 153.880026 107.6794) (xy 153.5294 108.030025) (xy 153.5294 107.455576) (xy 153.5294 107.17112)
        (xy 153.45955 107.10127) (xy 153.00127 107.10127) (xy 153.00127 107.60955) (xy 153.07112 107.6794) (xy 153.194424 107.6794)
        (xy 153.305576 107.6794) (xy 153.408267 107.636864) (xy 153.486864 107.558267) (xy 153.5294 107.455576) (xy 153.5294 108.030025)
        (xy 153.527705 108.03172) (xy 153.421607 107.960828) (xy 152.99873 107.876712) (xy 152.99873 107.60955) (xy 152.99873 107.10127)
        (xy 152.54045 107.10127) (xy 152.4706 107.17112) (xy 152.4706 107.455576) (xy 152.513136 107.558267) (xy 152.591733 107.636864)
        (xy 152.694424 107.6794) (xy 152.805576 107.6794) (xy 152.92888 107.6794) (xy 152.99873 107.60955) (xy 152.99873 107.876712)
        (xy 152.9842 107.873822) (xy 152.546793 107.960828) (xy 152.175977 108.208599) (xy 151.928206 108.579415) (xy 151.8412 109.016822)
        (xy 151.8412 109.372378) (xy 151.928206 109.809785) (xy 152.175977 110.180601) (xy 152.546793 110.428372) (xy 152.9842 110.515378)
        (xy 153.421607 110.428372) (xy 153.792423 110.180601) (xy 154.040194 109.809785) (xy 154.1272 109.372378) (xy 154.1272 109.016822)
        (xy 154.040194 108.579415) (xy 153.989631 108.503742) (xy 154.263173 108.2302) (xy 154.55 108.2302) (xy 154.676362 108.205065)
        (xy 154.783487 108.133487) (xy 155.333483 107.583489) (xy 155.333486 107.583487) (xy 155.333487 107.583487) (xy 155.391 107.497411)
        (xy 155.391 107.900317) (xy 155.086793 107.960828) (xy 154.715977 108.208599) (xy 154.468206 108.579415) (xy 154.3812 109.016822)
        (xy 154.3812 109.372378) (xy 154.468206 109.809785) (xy 154.715977 110.180601) (xy 155.086793 110.428372) (xy 155.5242 110.515378)
        (xy 155.961607 110.428372) (xy 156.332423 110.180601) (xy 156.580194 109.809785) (xy 156.6672 109.372378) (xy 156.6672 109.016822)
        (xy 156.580194 108.579415) (xy 156.332423 108.208599) (xy 156.0514 108.020825) (xy 156.0514 107.2532) (xy 158.434168 107.2532)
        (xy 159.0532 106.634168) (xy 159.0532 105.0608) (xy 159.0676 105.0608) (xy 159.193962 105.035665) (xy 159.301087 104.964087)
        (xy 159.463138 104.802035) (xy 159.539824 104.8338) (xy 159.650976 104.8338) (xy 160.550976 104.8338) (xy 160.653667 104.791264)
        (xy 160.732264 104.712667) (xy 160.7748 104.609976) (xy 160.7748 104.498824) (xy 160.7748 103.998824) (xy 160.732264 103.896133)
        (xy 160.653667 103.817536) (xy 160.550976 103.775) (xy 160.439824 103.775) (xy 160.1334 103.775) (xy 160.1334 102.464376)
        (xy 160.1334 102.353224) (xy 160.1334 102.22992) (xy 160.1334 102.08768) (xy 160.1334 101.964376) (xy 160.1334 101.853224)
        (xy 160.1334 101.016576) (xy 160.1334 100.905424) (xy 160.1334 100.78212) (xy 160.1334 100.63988) (xy 160.1334 100.516576)
        (xy 160.1334 100.405424) (xy 160.090864 100.302733) (xy 160.012267 100.224136) (xy 159.909576 100.1816) (xy 159.62512 100.1816)
        (xy 159.55527 100.25145) (xy 159.55527 100.70973) (xy 160.06355 100.70973) (xy 160.1334 100.63988) (xy 160.1334 100.78212)
        (xy 160.06355 100.71227) (xy 159.55527 100.71227) (xy 159.55527 101.17055) (xy 159.62512 101.2404) (xy 159.909576 101.2404)
        (xy 160.012267 101.197864) (xy 160.090864 101.119267) (xy 160.1334 101.016576) (xy 160.1334 101.853224) (xy 160.090864 101.750533)
        (xy 160.012267 101.671936) (xy 159.909576 101.6294) (xy 159.62512 101.6294) (xy 159.55527 101.69925) (xy 159.55527 102.15753)
        (xy 160.06355 102.15753) (xy 160.1334 102.08768) (xy 160.1334 102.22992) (xy 160.06355 102.16007) (xy 159.55527 102.16007)
        (xy 159.55527 102.61835) (xy 159.62512 102.6882) (xy 159.909576 102.6882) (xy 160.012267 102.645664) (xy 160.090864 102.567067)
        (xy 160.1334 102.464376) (xy 160.1334 103.775) (xy 159.539824 103.775) (xy 159.437133 103.817536) (xy 159.358536 103.896133)
        (xy 159.316 103.998824) (xy 159.316 104.033704) (xy 159.260313 104.070913) (xy 159.0532 104.278026) (xy 159.0532 104.006995)
        (xy 159.233487 103.826708) (xy 159.305065 103.719583) (xy 159.3302 103.593221) (xy 159.330201 103.593221) (xy 159.3302 103.593215)
        (xy 159.3302 102.6882) (xy 159.48288 102.6882) (xy 159.55273 102.61835) (xy 159.55273 102.16007) (xy 159.53273 102.16007)
        (xy 159.53273 102.15753) (xy 159.55273 102.15753) (xy 159.55273 101.69925) (xy 159.48288 101.6294) (xy 159.3302 101.6294)
        (xy 159.3302 101.2404) (xy 159.48288 101.2404) (xy 159.55273 101.17055) (xy 159.55273 100.71227) (xy 159.53273 100.71227)
        (xy 159.53273 100.70973) (xy 159.55273 100.70973) (xy 159.55273 100.25145) (xy 159.48288 100.1816) (xy 159.3302 100.1816)
        (xy 159.3302 100.086774) (xy 159.486774 99.9302) (xy 161.063226 99.9302) (xy 163.0198 101.886774) (xy 163.0198 110.213226)
        (xy 163.0045 110.228526) (xy 163.0045 106.430776) (xy 163.0045 106.319624) (xy 163.0045 105.430624) (xy 163.0045 104.525776)
        (xy 163.0045 104.09682) (xy 163.0045 103.95458) (xy 163.0045 103.525624) (xy 162.961964 103.422933) (xy 162.883367 103.344336)
        (xy 162.780676 103.3018) (xy 162.669524 103.3018) (xy 162.09772 103.3018) (xy 162.02787 103.37165) (xy 162.02787 104.02443)
        (xy 162.93465 104.02443) (xy 163.0045 103.95458) (xy 163.0045 104.09682) (xy 162.93465 104.02697) (xy 162.02787 104.02697)
        (xy 162.02787 104.67975) (xy 162.09772 104.7496) (xy 162.669524 104.7496) (xy 162.780676 104.7496) (xy 162.883367 104.707064)
        (xy 162.961964 104.628467) (xy 163.0045 104.525776) (xy 163.0045 105.430624) (xy 162.961964 105.327933) (xy 162.883367 105.249336)
        (xy 162.780676 105.2068) (xy 162.669524 105.2068) (xy 162.02533 105.2068) (xy 162.02533 104.67975) (xy 162.02533 104.02697)
        (xy 162.02533 104.02443) (xy 162.02533 103.37165) (xy 161.95548 103.3018) (xy 161.383676 103.3018) (xy 161.272524 103.3018)
        (xy 161.169833 103.344336) (xy 161.091236 103.422933) (xy 161.0487 103.525624) (xy 161.0487 103.95458) (xy 161.11855 104.02443)
        (xy 162.02533 104.02443) (xy 162.02533 104.02697) (xy 161.11855 104.02697) (xy 161.0487 104.09682) (xy 161.0487 104.525776)
        (xy 161.091236 104.628467) (xy 161.169833 104.707064) (xy 161.272524 104.7496) (xy 161.383676 104.7496) (xy 161.95548 104.7496)
        (xy 162.02533 104.67975) (xy 162.02533 105.2068) (xy 161.272524 105.2068) (xy 161.169833 105.249336) (xy 161.091236 105.327933)
        (xy 161.0487 105.430624) (xy 161.0487 105.541776) (xy 161.0487 105.6005) (xy 160.7748 105.6005) (xy 160.7748 105.498824)
        (xy 160.732264 105.396133) (xy 160.653667 105.317536) (xy 160.550976 105.275) (xy 160.439824 105.275) (xy 159.539824 105.275)
        (xy 159.437133 105.317536) (xy 159.358536 105.396133) (xy 159.316 105.498824) (xy 159.316 105.609976) (xy 159.316 106.109976)
        (xy 159.358536 106.212667) (xy 159.437133 106.291264) (xy 159.539824 106.3338) (xy 159.650976 106.3338) (xy 160.550976 106.3338)
        (xy 160.653667 106.291264) (xy 160.684031 106.2609) (xy 161.0487 106.2609) (xy 161.0487 106.430776) (xy 161.091236 106.533467)
        (xy 161.169833 106.612064) (xy 161.272524 106.6546) (xy 161.383676 106.6546) (xy 162.780676 106.6546) (xy 162.883367 106.612064)
        (xy 162.961964 106.533467) (xy 163.0045 106.430776) (xy 163.0045 110.228526) (xy 162.413226 110.8198) (xy 161.7472 110.8198)
        (xy 161.7472 110.266176) (xy 161.7472 110.155024) (xy 161.7472 109.26572) (xy 161.7472 109.12348) (xy 161.7472 108.234176)
        (xy 161.7472 108.123024) (xy 161.704664 108.020333) (xy 161.626067 107.941736) (xy 161.523376 107.8992) (xy 160.67532 107.8992)
        (xy 160.60547 107.96905) (xy 160.60547 109.19333) (xy 161.67735 109.19333) (xy 161.7472 109.12348) (xy 161.7472 109.26572)
        (xy 161.67735 109.19587) (xy 160.60547 109.19587) (xy 160.60547 110.42015) (xy 160.67532 110.49) (xy 161.523376 110.49)
        (xy 161.626067 110.447464) (xy 161.704664 110.368867) (xy 161.7472 110.266176) (xy 161.7472 110.8198) (xy 160.60293 110.8198)
        (xy 160.60293 110.42015) (xy 160.60293 109.19587) (xy 160.60293 109.19333) (xy 160.60293 107.96905) (xy 160.53308 107.8992)
        (xy 159.685024 107.8992) (xy 159.582333 107.941736) (xy 159.503736 108.020333) (xy 159.4612 108.123024) (xy 159.4612 108.234176)
        (xy 159.4612 109.12348) (xy 159.53105 109.19333) (xy 160.60293 109.19333) (xy 160.60293 109.19587) (xy 159.53105 109.19587)
        (xy 159.4612 109.26572) (xy 159.4612 110.155024) (xy 159.4612 110.266176) (xy 159.503736 110.368867) (xy 159.582333 110.447464)
        (xy 159.685024 110.49) (xy 160.53308 110.49) (xy 160.60293 110.42015) (xy 160.60293 110.8198) (xy 158.3944 110.8198)
        (xy 158.3944 110.449696) (xy 158.501607 110.428372) (xy 158.872423 110.180601) (xy 159.120194 109.809785) (xy 159.2072 109.372378)
        (xy 159.2072 109.016822) (xy 159.120194 108.579415) (xy 158.872423 108.208599) (xy 158.501607 107.960828) (xy 158.0642 107.873822)
        (xy 157.626793 107.960828) (xy 157.255977 108.208599) (xy 157.008206 108.579415) (xy 156.9212 109.016822) (xy 156.9212 109.372378)
        (xy 157.008206 109.809785) (xy 157.255977 110.180601) (xy 157.626793 110.428372) (xy 157.734 110.449696) (xy 157.734 110.9642)
        (xy 157.759135 111.090562) (xy 157.830713 111.197687) (xy 158.016513 111.383487) (xy 158.123638 111.455065) (xy 158.25 111.480201)
        (xy 158.25 111.4802) (xy 158.250005 111.4802) (xy 162.55 111.4802) (xy 162.676362 111.455065) (xy 162.783487 111.383487)
        (xy 163.583487 110.583487) (xy 163.655065 110.476362) (xy 163.6802 110.35) (xy 163.680201 110.35) (xy 163.6802 110.349994)
        (xy 163.6802 101.75) (xy 163.655065 101.623638) (xy 163.583487 101.516513) (xy 161.433487 99.366513) (xy 161.326362 99.294935)
        (xy 161.2 99.2698) (xy 159.35 99.2698) (xy 159.223638 99.294935) (xy 159.116513 99.366513) (xy 159.025 99.458026)
        (xy 158.933487 99.366513) (xy 158.826362 99.294935) (xy 158.7 99.2698) (xy 154.100005 99.2698) (xy 154.1 99.269799)
        (xy 153.973638 99.294935) (xy 153.866513 99.366513) (xy 152.766513 100.466513) (xy 152.694935 100.573638) (xy 152.6698 100.7)
        (xy 152.6698 102.3) (xy 152.694935 102.426362) (xy 152.766513 102.533487) (xy 152.96651 102.733483) (xy 152.966513 102.733487)
        (xy 152.966514 102.733487) (xy 153.073638 102.805065) (xy 153.2 102.830201) (xy 153.2 102.8302) (xy 153.200005 102.8302)
        (xy 153.2206 102.8302) (xy 153.2206 102.97888) (xy 153.29045 103.04873) (xy 153.74873 103.04873) (xy 153.74873 103.02873)
        (xy 153.75127 103.02873) (xy 153.75127 103.04873) (xy 154.20955 103.04873) (xy 154.2794 102.97888) (xy 154.2794 102.955773)
        (xy 154.868129 103.544502) (xy 154.7968 103.615832) (xy 154.7968 104.0004) (xy 154.387007 104.0004) (xy 154.365194 103.978548)
        (xy 154.2794 103.942923) (xy 154.2794 103.405576) (xy 154.2794 103.12112) (xy 154.20955 103.05127) (xy 153.75127 103.05127)
        (xy 153.75127 103.55955) (xy 153.82112 103.6294) (xy 153.944424 103.6294) (xy 154.055576 103.6294) (xy 154.158267 103.586864)
        (xy 154.236864 103.508267) (xy 154.2794 103.405576) (xy 154.2794 103.942923) (xy 154.225798 103.920666) (xy 154.074864 103.920534)
        (xy 153.935368 103.978173) (xy 153.887912 104.025544) (xy 153.74873 103.886362) (xy 153.74873 103.55955) (xy 153.74873 103.05127)
        (xy 153.29045 103.05127) (xy 153.2206 103.12112) (xy 153.2206 103.405576) (xy 153.263136 103.508267) (xy 153.341733 103.586864)
        (xy 153.444424 103.6294) (xy 153.555576 103.6294) (xy 153.67888 103.6294) (xy 153.74873 103.55955) (xy 153.74873 103.886362)
        (xy 153.675 103.812632) (xy 153.412173 104.075458) (xy 153.376346 104.076713) (xy 153.376346 103.986301) (xy 153.239069 103.92356)
        (xy 153.088231 103.91813) (xy 152.946798 103.970835) (xy 152.923654 103.986301) (xy 152.926759 104.074963) (xy 153.15 104.298204)
        (xy 153.373241 104.074963) (xy 153.376346 103.986301) (xy 153.376346 104.076713) (xy 153.375037 104.076759) (xy 153.151796 104.3)
        (xy 153.165938 104.314142) (xy 153.164142 104.315938) (xy 153.15 104.301796) (xy 153.135857 104.315938) (xy 153.134061 104.314142)
        (xy 153.148204 104.3) (xy 152.924963 104.076759) (xy 152.836301 104.073654) (xy 152.77356 104.210931) (xy 152.76813 104.361769)
        (xy 152.798624 104.4436) (xy 152.037637 104.4436) (xy 152.036864 104.441733) (xy 151.958267 104.363136) (xy 151.855576 104.3206)
        (xy 151.744424 104.3206) (xy 151.5762 104.3206) (xy 151.5762 97.681563) (xy 152.031563 97.2262) (xy 163.468437 97.2262)
        (xy 163.9238 97.681563) (xy 163.9238 111.318437)
      )
    )
  )
  (zone (net 0) (net_name "") (layer F.Cu) (tstamp 550C7E3B) (hatch edge 0.508)
    (connect_pads (clearance 0.2032))
    (min_thickness 0.1524)
    (keepout (tracks allowed) (vias allowed) (copperpour not_allowed))
    (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5))
    (polygon
      (pts
        (xy 153.9 104.55) (xy 153.45 104.55) (xy 153.45 104.1) (xy 153.9 104.1)
      )
    )
  )
  (zone (net 0) (net_name "") (layer F.Cu) (tstamp 550C7E43) (hatch edge 0.508)
    (connect_pads (clearance 0.2032))
    (min_thickness 0.1524)
    (keepout (tracks allowed) (vias allowed) (copperpour not_allowed))
    (fill yes (arc_segments 16) (thermal_gap 0.2032) (thermal_bridge_width 0.15494) (smoothing chamfer) (radius 0.5))
    (polygon
      (pts
        (xy 158.85 107.05) (xy 155 107.05) (xy 155 103.2) (xy 158.85 103.2)
      )
    )
  )
)


why not just take everything to a casino?

i wouldn't recommend buying on the margin.

you can never really predict the stock market.

my lawyer said i shouldn't give stock tips online.

mutual funds might be better unless you are wealthy.

i'm not sure an indvidual alone can really beat the market.

that all depends on the actions of the central bank.

dollar: unit of currency in the united states.

standard pieces of gold, silver, copper, nickel, etc. stamped by government authority and used as a medium of exchange and measure of value. any substance or article used as money, as bank notes, checks, etc.

what is the stock market
trading shares.

what is the stock market
trading in volume.

what is the stock market
buy low and sell high.

what is your favorite investment
what is your favorite stock

the science that deals with the production, distribution, and consumption of wealth, and with the various related problems of labor, finance, taxation, etc.

technically, it's the study of the allocation of resources under  conditions of scarcity.

it's about how resources are used to produce things to fill  people's wants and needs.

do you feel that the stock market is going up?

money
how much money are we talking about?

how much do you earn
nobody pays me.  i work for free.

how much do you earn
money isn't everything.

how much do you earn
i'm expecting a raise soon.

how much do you charge
work for free.  we don't need money.

how much money do you have
no need for material possessions.

how much money
it depends on the exchange rates.

how much money
my burn rate is about _3000 per month.

you can't buy much for a dollar anymore.

who is the owner of a publicly
the stockholders.


// ------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All Rights Reserved.  Licensed under the MIT License.  See License in the project root for license information.
// ------------------------------------------------------------------------------

package com.microsoft.graph.requests.extensions;

import com.microsoft.graph.http.IRequestBuilder;
import com.microsoft.graph.core.ClientException;
import com.microsoft.graph.concurrency.ICallback;
import com.microsoft.graph.models.extensions.OnenoteEntityBaseModel;
import java.util.Arrays;
import java.util.EnumSet;

// **NOTE** This file was generated by a tool and any changes will be overwritten.

/**
 * The interface for the Onenote Entity Base Model Request Builder.
 */
public interface IOnenoteEntityBaseModelRequestBuilder extends IRequestBuilder {
    /**
     * Creates the request
     *
     * @param requestOptions the options for this request
     * @return the IOnenoteEntityBaseModelRequest instance
     */
    IOnenoteEntityBaseModelRequest buildRequest(final com.microsoft.graph.options.Option... requestOptions);

    /**
     * Creates the request with specific options instead of the existing options
     *
     * @param requestOptions the options for this request
     * @return the IOnenoteEntityBaseModelRequest instance
     */
    IOnenoteEntityBaseModelRequest buildRequest(final java.util.List<? extends com.microsoft.graph.options.Option> requestOptions);

}


//---------------------------------------------------------------------------

#include "GetApi.h"
#include "Memory.h"

#include "WndUtils.h"

//---------------------------------------------------------------------------

void FreeWndProcInfoRec(LPVOID Data)
{
	// Уничтожить элемент списка  PWndProcInfo
    FreeStruct(Data);
}
//---------------------------------------------------------------------------

bool SubClassingSearcRec(WNDPROCLIST List, HWND Wnd, DWORD *Index, PWndProcInfo *Rec)
{
	// Функция ищет запись об оконной процедуре для указанного окна
	if (Index != NULL)
		*Index = 0;

	if (Rec != NULL)
		*Rec = NULL;

	if (List == NULL || Wnd == NULL)
		return false;

	for (DWORD i = 0; i < List::Count(List); i++)
    {
		PWndProcInfo Info = (PWndProcInfo)List::GetItem(List, i);
		if (Info->Window == Wnd)
		{
			if (Index != NULL)
				*Index = i;
			if (Rec != NULL)
				*Rec = Info;
			return true;
		}
	}

	return false;
}
//---------------------------------------------------------------------------

WNDPROCLIST SubClassing::CreateList()
{
	//	функция создаёт список хранения информации подмененых процедурах.
	PList L = List::Create();
	List::SetFreeItemMehod(L, FreeWndProcInfoRec);

	return L;
}
//---------------------------------------------------------------------------

PWndProcInfo SubClassing::SetWindowProc(WNDPROCLIST List, HWND Wnd, WNDPROC NewProc)
{
	// Функция подменяет оконную процедуру

	if (List == NULL || Wnd == NULL || NewProc == NULL)
		return NULL;

    PWndProcInfo Rec = CreateStruct(TWndProcInfo);
	if (Rec == NULL) return NULL;

	Rec->Window = Wnd;
	Rec->IsUnicode = pIsWindowUnicode(Wnd);

	// Проверяем поток окна
//	DWORD ProcID;
//	DWORD ThreadID = (DWORD)pGetWindowThreadProcessId(Wnd,&ProcID);
//	DWORD CurrentID = (DWORD)pGetCurrentThreadId();

	// В случае если окно из другого процесса то подключаемся к
	// его выводу

//	if (CurrentID != ThreadID)
//	{
//		if (AttachThreadInput(CurrentID, ThreadID, true))
//            CurrentID = 0;
//    }

	if (Rec->IsUnicode)
    	Rec->OriginalProc = (WNDPROC)pSetWindowLongW(Wnd, GWL_WNDPROC, (DWORD)NewProc);
	else
		Rec->OriginalProc = (WNDPROC)pSetWindowLongA(Wnd, GWL_WNDPROC, (DWORD)NewProc);

	if (Rec->OriginalProc != NULL)
		List::Add(List, Rec);
	else
	{
		FreeWndProcInfoRec(Rec);
        Rec = NULL;
    }
	return Rec;
}
//---------------------------------------------------------------------------

void SubClassing::RestoreWndProc(WNDPROCLIST List, HWND Wnd)
{
	// Функция восстанавливает оригинальную оконную процедуру

	PWndProcInfo Rec;
	DWORD Index;
	if (!SubClassingSearcRec(List, Wnd, &Index, &Rec))
		return;

	if (Rec->OriginalProc != NULL)
	{
		if (Rec->IsUnicode)
			pSetWindowLongW(Wnd, GWL_WNDPROC, (DWORD)Rec->OriginalProc);
		else
			pSetWindowLongA(Wnd, GWL_WNDPROC, (DWORD)Rec->OriginalProc);
	}
    List::Delete(List, Index);
}
//---------------------------------------------------------------------------

LRESULT SubClassing::CallOriginalProc(WNDPROCLIST List, HWND Wnd, UINT Msg, WPARAM WParam, LPARAM LParam)
{
	//  Функция вызывает ориганальную оконную процедуру
	PWndProcInfo Rec;
	if (!SubClassingSearcRec(List, Wnd, NULL, &Rec))
		return 0;

	if (Rec->OriginalProc == NULL)
		return 0;

	if (Rec->IsUnicode)
		return (LRESULT)pCallWindowProcW(Rec->OriginalProc,  Wnd, Msg, WParam, LParam);
	else
		return (LRESULT)pCallWindowProcA(Rec->OriginalProc,  Wnd, Msg, WParam, LParam);
}
//---------------------------------------------------------------------------

//****************************************************************************

HWND AllocateWND(WNDPROC WndProc)
{
	// Функция создаёт окно
	if (WndProc == NULL)
		return NULL;

    char ClassName[]= {'S', 't', 'C', 's', 't', 'S', 'i', 'n', 'g', 'l', 'W', 'n', 'd',  0};

    WNDCLASS WC;
    WC.style = 0;
	WC.cbClsExtra = 0;
	WC.cbWndExtra = 0;
	WC.hIcon = 0;
	WC.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
	WC.lpszMenuName = 0;
	WC.lpszClassName = ClassName;
	WC.lpfnWndProc = WndProc;
	WC.hInstance = (HINSTANCE)pGetModuleHandleW(NULL);
	WC.hCursor = (HCURSOR)pLoadCursorW(NULL,IDC_ARROW);
	pRegisterClassA(&WC);

	return (HWND)pCreateWindowExA(WS_EX_APPWINDOW, ClassName, NULL,WS_OVERLAPPEDWINDOW+WS_CLIPCHILDREN,0,0,0,0,NULL,NULL, WC.hInstance, NULL);
}
//---------------------------------------------------------------------------

PCHAR GetWNDText(HWND Wnd)
{
	// Функция возвращает текст окна
	if (Wnd == NULL)
		return NULL;

	DWORD Len = (DWORD)pSendMessageA(Wnd, WM_GETTEXTLENGTH, 0, 0);

	if (Len == 0)
		return NULL;

    PCHAR Str = STR::Alloc(Len);

	pSendMessageA(Wnd, WM_GETTEXT, Len, Str);

    return Str;
}

//---------------------------------------------------------------------------


/**
 * Shopware 5
 * Copyright (c) shopware AG
 *
 * According to our dual licensing model, this program can be used either
 * under the terms of the GNU Affero General Public License, version 3,
 * or under a proprietary license.
 *
 * The texts of the GNU Affero General Public License with an additional
 * permission and of our proprietary license can be found at and
 * in the LICENSE file you have received along with this program.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 *
 * "Shopware" is a registered trademark of shopware AG.
 * The licensing of the program under the AGPLv3 does not imply a
 * trademark license. Therefore any rights, title and interest in
 * our trademarks remain entirely with us.
 */

//{block name="extjs/overrides/ajax"}
Ext.CSRFService = (function() {
    var me = this;

    /**
     * Indicates if the token has returned from the backend
     * @type { boolean }
     */
    me.tokenReceived = false;

    /**
     * CSRFToken for the requests
     * @type { string }
     */
    me.csrfToken = "";

    /**
     * Dummy method
     */
    me.requestMethod = function() { };

    /**
     * List of waiting requests
     *
     * Example:
     *
     * {
     *      context: this, // Ext.Ajax.request()'s this
     *      options: {
     *          url: ...,
     *          headers: ...,
     *          ...
     *          }
     *      }
     * }
     *
     * @type { Array }
     */
    me.interceptedRequests = [];

    /**
     * Generate X-CSRF-Token cookie
     */
    me.requestToken = function() {
        Ext.Ajax.request({
            headers: {
                ignoreCSRFToken: true
            },
            url: '{url module=backend controller=CSRFToken action=generate}',
            success: function(response) {
                me.csrfToken = response.getResponseHeader('x-csrf-token');
                me.tokenReceived = true;
                me.continueRequests();
            }
        });
    };

    /**
     * Returns the token
     * @returns { string }
     */
    me.getToken = function() {
        return me.csrfToken;
    };

    /**
     * Capture every requests and append the X-CSRF-Token as header
     *
     * @param conn
     * @param options
     */
    me.onBeforeRequest = function(conn, options) {
        if (me.csrfToken.length === 0) {
            return;
        }

        if (typeof options.headers === "undefined") {
            options.headers = { };
        }

        options.headers['X-CSRF-Token'] = me.csrfToken;
    };

    /**
     * Decorate Ext.Ajax.request() method to wait for the CSRF-Token
     */
    me.registerAjaxInterceptor = function () {
        var me = this;

        me.requestMethod = Ext.Ajax.request;

        Ext.merge(Ext.Ajax, {
            request: function(options) {

                if (me.tokenReceived || (options.headers && options.headers.ignoreCSRFToken === true)) {
                    return me.requestMethod.apply(this,  [options]);
                }

                me.interceptedRequests.push({ context: this, options: options });
            }
        });
    };

    /**
     * Process waiting requests
     */
    me.continueRequests = function() {
        var me = this;

        if (me.interceptedRequests.length === 0) {
            return;
        }

        Ext.each(me.interceptedRequests, function(request) {
            me.requestMethod.apply(request.context, [request.options]);
        });

        me.interceptedRequests.length = 0;
    };

    /**
     * Enable CSRF-Protection
     */
    me.registerAjaxEvent = function () {
        var me = this;

        Ext.Ajax.on('beforerequest', me.onBeforeRequest);
    };

    me.init = function() {
        me.registerAjaxInterceptor();
        me.registerAjaxEvent();
        me.requestToken();
    };

    me.init();

    return me;
})();
//{/block}