br_danfe 0.0.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -3
  3. data/br_danfe.gemspec +1 -0
  4. data/config/locales/pt-BR.yml +14 -0
  5. data/lib/br_danfe/cce.rb +28 -0
  6. data/lib/br_danfe/cce_lib/barcode.rb +24 -0
  7. data/lib/br_danfe/cce_lib/correction.rb +22 -0
  8. data/lib/br_danfe/cce_lib/document.rb +44 -0
  9. data/lib/br_danfe/cce_lib/footer.rb +15 -0
  10. data/lib/br_danfe/cce_lib/header.rb +15 -0
  11. data/lib/br_danfe/cce_lib/nfe_key.rb +23 -0
  12. data/lib/br_danfe/cce_lib/protocol.rb +23 -0
  13. data/lib/br_danfe/danfe.rb +16 -16
  14. data/lib/br_danfe/danfe_lib/cep.rb +9 -0
  15. data/lib/br_danfe/danfe_lib/consts.rb +6 -0
  16. data/lib/br_danfe/danfe_lib/cst.rb +30 -0
  17. data/lib/br_danfe/danfe_lib/dest.rb +86 -0
  18. data/lib/br_danfe/danfe_lib/det_body.rb +75 -0
  19. data/lib/br_danfe/danfe_lib/det_header.rb +40 -0
  20. data/lib/br_danfe/danfe_lib/document.rb +135 -0
  21. data/lib/br_danfe/danfe_lib/dup.rb +52 -0
  22. data/lib/br_danfe/danfe_lib/emit.rb +23 -0
  23. data/lib/br_danfe/danfe_lib/emit_header.rb +82 -0
  24. data/lib/br_danfe/danfe_lib/helper.rb +64 -0
  25. data/lib/br_danfe/danfe_lib/icmstot.rb +33 -0
  26. data/lib/br_danfe/danfe_lib/infadic.rb +80 -0
  27. data/lib/br_danfe/danfe_lib/issqn.rb +24 -0
  28. data/lib/br_danfe/danfe_lib/options.rb +24 -0
  29. data/lib/br_danfe/danfe_lib/phone.rb +13 -0
  30. data/lib/br_danfe/danfe_lib/plate.rb +9 -0
  31. data/lib/br_danfe/danfe_lib/ticket.rb +17 -0
  32. data/lib/br_danfe/danfe_lib/transp.rb +51 -0
  33. data/lib/br_danfe/danfe_lib/vol.rb +41 -0
  34. data/lib/br_danfe/danfe_lib/xml.rb +38 -0
  35. data/lib/br_danfe/danfe_lib/xprod.rb +48 -0
  36. data/lib/br_danfe/version.rb +1 -1
  37. data/lib/br_danfe.rb +1 -1
  38. data/spec/features/cce_spec.rb +28 -0
  39. data/spec/features/danfe_spec.rb +3 -3
  40. data/spec/fixtures/cce/lib/barcode#render.pdf +511 -0
  41. data/spec/fixtures/cce/lib/correction#render.pdf +100 -0
  42. data/spec/fixtures/cce/lib/document#box.pdf +55 -0
  43. data/spec/fixtures/cce/lib/document#box.with.block.pdf +72 -0
  44. data/spec/fixtures/cce/lib/document#text.align.pdf +70 -0
  45. data/spec/fixtures/cce/lib/document#text.pad.pdf +70 -0
  46. data/spec/fixtures/cce/lib/document#text.simple.pdf +70 -0
  47. data/spec/fixtures/cce/lib/document#text.size.pdf +70 -0
  48. data/spec/fixtures/cce/lib/document#text.style.pdf +70 -0
  49. data/spec/fixtures/cce/lib/footer#render.pdf +114 -0
  50. data/spec/fixtures/cce/lib/header#render.pdf +72 -0
  51. data/spec/fixtures/cce/lib/nfe_key#render.pdf +88 -0
  52. data/spec/fixtures/cce/lib/protocol#render.pdf +88 -0
  53. data/spec/fixtures/cce/v1.00/cce.fixture.pdf +659 -0
  54. data/spec/fixtures/cce/v1.00/cce.xml +1 -0
  55. data/spec/fixtures/{lib → nfe/lib}/dest#render-v2.00.pdf +0 -0
  56. data/spec/fixtures/{lib → nfe/lib}/dest#render-v3.10.pdf +0 -0
  57. data/spec/fixtures/{lib → nfe/lib}/dest#render-with_cnpj.pdf +0 -0
  58. data/spec/fixtures/{lib → nfe/lib}/dest#render-with_cpf.pdf +0 -0
  59. data/spec/fixtures/{lib → nfe/lib}/dest#render-with_ie.pdf +0 -0
  60. data/spec/fixtures/{lib → nfe/lib}/det_body#render-csosn.pdf +0 -0
  61. data/spec/fixtures/{lib → nfe/lib}/det_body#render-cst.pdf +0 -0
  62. data/spec/fixtures/{lib → nfe/lib}/det_body#render-fci.pdf +0 -0
  63. data/spec/fixtures/{lib → nfe/lib}/det_body#render-icms_st.pdf +0 -0
  64. data/spec/fixtures/{lib → nfe/lib}/det_header#render.pdf +0 -0
  65. data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-blank.pdf +0 -0
  66. data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-invalid.pdf +0 -0
  67. data/spec/fixtures/{lib → nfe/lib}/document#lcnpj-valid.pdf +0 -0
  68. data/spec/fixtures/{lib → nfe/lib}/document#lie-blank.pdf +0 -0
  69. data/spec/fixtures/{lib → nfe/lib}/document#lie-invalid.pdf +0 -0
  70. data/spec/fixtures/{lib → nfe/lib}/document#lie-valid.pdf +0 -0
  71. data/spec/fixtures/{lib → nfe/lib}/dup#render.pdf +0 -0
  72. data/spec/fixtures/{lib → nfe/lib}/emit#render.pdf +0 -0
  73. data/spec/fixtures/{lib → nfe/lib}/emit_header#render-with_logo.pdf +0 -0
  74. data/spec/fixtures/{lib → nfe/lib}/emit_header#render-without_logo.pdf +0 -0
  75. data/spec/fixtures/{lib → nfe/lib}/icmstot#render.pdf +0 -0
  76. data/spec/fixtures/{lib → nfe/lib}/infadic#render-extra_volume.pdf +0 -0
  77. data/spec/fixtures/{lib → nfe/lib}/infadic#render.pdf +0 -0
  78. data/spec/fixtures/{lib → nfe/lib}/issqn#render.pdf +0 -0
  79. data/spec/fixtures/{lib → nfe/lib}/ticket#render.pdf +0 -0
  80. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_0.pdf +0 -0
  81. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_1.pdf +0 -0
  82. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_2.pdf +0 -0
  83. data/spec/fixtures/{lib → nfe/lib}/transp#render-modfrete_9.pdf +0 -0
  84. data/spec/fixtures/{lib → nfe/lib}/transp#render.pdf +0 -0
  85. data/spec/fixtures/{lib → nfe/lib}/vol#render-blank-boxes.pdf +0 -0
  86. data/spec/fixtures/{lib → nfe/lib}/vol#render.pdf +0 -0
  87. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_simples_nacional.xml +0 -0
  88. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_simples_nacional.xml.fixture.pdf +0 -0
  89. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_extra_volumes.xml +0 -0
  90. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_extra_volumes.xml.fixture.pdf +0 -0
  91. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_fci.xml +0 -0
  92. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_fci.xml.fixture.pdf +0 -0
  93. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_logo.xml +0 -0
  94. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_ns.xml +0 -0
  95. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_with_ns.xml.fixture.pdf +0 -0
  96. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_without_ns.xml +0 -0
  97. data/spec/fixtures/{v2.00 → nfe/v2.00}/nfe_without_ns.xml.fixture.pdf +0 -0
  98. data/spec/fixtures/{v3.10 → nfe/v3.10}/nfe_simples_nacional.xml +0 -0
  99. data/spec/fixtures/{v3.10 → nfe/v3.10}/nfe_simples_nacional.xml.fixture.pdf +0 -0
  100. data/spec/lib/cce_lib/barcode_spec.rb +26 -0
  101. data/spec/lib/cce_lib/correction_spec.rb +26 -0
  102. data/spec/lib/cce_lib/document_spec.rb +115 -0
  103. data/spec/lib/cce_lib/footer_spec.rb +25 -0
  104. data/spec/lib/cce_lib/header_spec.rb +25 -0
  105. data/spec/lib/cce_lib/nfe_key_spec.rb +26 -0
  106. data/spec/lib/cce_lib/protocol_spec.rb +26 -0
  107. data/spec/lib/{cep_spec.rb → danfe_lib/cep_spec.rb} +2 -2
  108. data/spec/lib/{cst_spec.rb → danfe_lib/cst_spec.rb} +3 -3
  109. data/spec/lib/{dest_spec.rb → danfe_lib/dest_spec.rb} +4 -4
  110. data/spec/lib/{det_body_spec.rb → danfe_lib/det_body_spec.rb} +4 -4
  111. data/spec/lib/{det_header_spec.rb → danfe_lib/det_header_spec.rb} +4 -4
  112. data/spec/lib/{document_spec.rb → danfe_lib/document_spec.rb} +3 -3
  113. data/spec/lib/{dup_spec.rb → danfe_lib/dup_spec.rb} +4 -4
  114. data/spec/lib/{emit_header_spec.rb → danfe_lib/emit_header_spec.rb} +4 -4
  115. data/spec/lib/{emit_spec.rb → danfe_lib/emit_spec.rb} +4 -4
  116. data/spec/lib/{helper_spec.rb → danfe_lib/helper_spec.rb} +11 -11
  117. data/spec/lib/{icmstot_spec.rb → danfe_lib/icmstot_spec.rb} +4 -4
  118. data/spec/lib/{infadic_spec.rb → danfe_lib/infadic_spec.rb} +4 -4
  119. data/spec/lib/{issqn_spec.rb → danfe_lib/issqn_spec.rb} +4 -4
  120. data/spec/lib/{options_spec.rb → danfe_lib/options_spec.rb} +3 -3
  121. data/spec/lib/{phone_spec.rb → danfe_lib/phone_spec.rb} +3 -3
  122. data/spec/lib/{plate_spec.rb → danfe_lib/plate_spec.rb} +2 -2
  123. data/spec/lib/{ticket_spec.rb → danfe_lib/ticket_spec.rb} +4 -4
  124. data/spec/lib/{transp_spec.rb → danfe_lib/transp_spec.rb} +4 -4
  125. data/spec/lib/{vol_spec.rb → danfe_lib/vol_spec.rb} +4 -4
  126. data/spec/lib/{xml_spec.rb → danfe_lib/xml_spec.rb} +2 -2
  127. data/spec/lib/{xprod_spec.rb → danfe_lib/xprod_spec.rb} +5 -5
  128. metadata +242 -174
  129. data/lib/br_danfe/cep.rb +0 -7
  130. data/lib/br_danfe/consts.rb +0 -4
  131. data/lib/br_danfe/cst.rb +0 -28
  132. data/lib/br_danfe/dest.rb +0 -84
  133. data/lib/br_danfe/det_body.rb +0 -73
  134. data/lib/br_danfe/det_header.rb +0 -38
  135. data/lib/br_danfe/document.rb +0 -133
  136. data/lib/br_danfe/dup.rb +0 -50
  137. data/lib/br_danfe/emit.rb +0 -21
  138. data/lib/br_danfe/emit_header.rb +0 -80
  139. data/lib/br_danfe/helper.rb +0 -62
  140. data/lib/br_danfe/icmstot.rb +0 -31
  141. data/lib/br_danfe/infadic.rb +0 -78
  142. data/lib/br_danfe/issqn.rb +0 -22
  143. data/lib/br_danfe/options.rb +0 -22
  144. data/lib/br_danfe/phone.rb +0 -11
  145. data/lib/br_danfe/plate.rb +0 -7
  146. data/lib/br_danfe/ticket.rb +0 -15
  147. data/lib/br_danfe/transp.rb +0 -49
  148. data/lib/br_danfe/vol.rb +0 -39
  149. data/lib/br_danfe/xml.rb +0 -36
  150. data/lib/br_danfe/xprod.rb +0 -46
@@ -0,0 +1,38 @@
1
+ module BrDanfe
2
+ module DanfeLib
3
+ class XML
4
+ def css(xpath)
5
+ @xml.css(xpath)
6
+ end
7
+
8
+ def initialize(xml)
9
+ @xml = Nokogiri::XML(xml)
10
+ end
11
+
12
+ def [](xpath)
13
+ node = @xml.css(xpath)
14
+ return node ? node.text : ""
15
+ end
16
+
17
+ def collect(ns, tag, &block)
18
+ result = []
19
+ # Tenta primeiro com uso de namespace
20
+ begin
21
+ @xml.xpath("//#{ns}:#{tag}").each do |det|
22
+ result << yield(det)
23
+ end
24
+ rescue
25
+ # Caso dê erro, tenta sem
26
+ @xml.xpath("//#{tag}").each do |det|
27
+ result << yield(det)
28
+ end
29
+ end
30
+ result
31
+ end
32
+
33
+ def version_310?
34
+ @xml.css("infNFe").attr("versao").to_s == "3.10"
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,48 @@
1
+ module BrDanfe
2
+ module DanfeLib
3
+ class Xprod
4
+ def initialize(det)
5
+ @det = det
6
+ end
7
+
8
+ def render
9
+ xprod = "#{@det.css('prod/xProd').text}"
10
+
11
+ xprod += infAdProd if has_infAdProd?
12
+ xprod += fci if has_fci?
13
+ xprod += st if has_st?
14
+
15
+ xprod
16
+ end
17
+
18
+ private
19
+ def has_infAdProd?
20
+ !@det.css("infAdProd").text.empty?
21
+ end
22
+
23
+ def has_fci?
24
+ !@det.css("prod/nFCI").text.empty?
25
+ end
26
+
27
+ def has_st?
28
+ @det.css("ICMS/*/vBCST").text.to_i > 0
29
+ end
30
+
31
+ def infAdProd
32
+ "\n" + @det.css("infAdProd").text
33
+ end
34
+
35
+ def fci
36
+ "\n" + I18n.t("danfe.det.prod.xProdFCI", nFCI: @det.css('prod/nFCI').text)
37
+ end
38
+
39
+ def st
40
+ "\n" + I18n.t("danfe.det.prod.xProdST",
41
+ pMVAST: Helper.numerify(@det.css('ICMS/*/pMVAST').text, 2),
42
+ pICMSST: Helper.numerify(@det.css('ICMS/*/pICMSST').text, 2),
43
+ vBCST: Helper.numerify(@det.css('ICMS/*/vBCST').text, 2),
44
+ vICMSST: Helper.numerify(@det.css('ICMS/*/vICMSST').text, 2))
45
+ end
46
+ end
47
+ end
48
+ end
@@ -1,3 +1,3 @@
1
1
  module BrDanfe
2
- VERSION = "0.0.9"
2
+ VERSION = "0.2.0"
3
3
  end
data/lib/br_danfe.rb CHANGED
@@ -9,7 +9,7 @@ require "yaml"
9
9
  require "ostruct"
10
10
  require "i18n"
11
11
  require "br_documents"
12
- require "br_danfe/consts"
12
+ require "br_danfe/danfe_lib/consts"
13
13
 
14
14
  Dir[File.dirname(__FILE__) + "/**/*.rb"].each { |f| require f }
15
15
  I18n.load_path << File.expand_path("../../config/locales/pt-BR.yml", __FILE__)
@@ -0,0 +1,28 @@
1
+ require "spec_helper"
2
+
3
+ describe BrDanfe::Cce do
4
+ let(:base_dir) { "./spec/fixtures/cce/v1.00/"}
5
+ let(:output_pdf) { "#{base_dir}output.pdf" }
6
+ let(:xml) { File.read("#{base_dir}cce.xml") }
7
+ subject { described_class.new(xml) }
8
+
9
+ describe "#render_pdf" do
10
+ it "renders the correction letter" do
11
+ expected = IO.binread("#{base_dir}cce.fixture.pdf")
12
+
13
+ expect(subject.render_pdf).to eq expected
14
+ end
15
+ end
16
+
17
+ describe "#save_pdf" do
18
+ before { File.delete(output_pdf) if File.exist?(output_pdf) }
19
+
20
+ it "saves the pdf" do
21
+ expect(File.exist?(output_pdf)).to be_falsey
22
+
23
+ subject.save_pdf output_pdf
24
+
25
+ expect("#{base_dir}cce.fixture.pdf").to have_same_content_of file: output_pdf
26
+ end
27
+ end
28
+ end
@@ -4,7 +4,7 @@ describe BrDanfe::Danfe do
4
4
  let(:output_pdf) { "#{base_dir}output.pdf" }
5
5
 
6
6
  describe "#render_pdf" do
7
- let(:base_dir) { "./spec/fixtures/v3.10/"}
7
+ let(:base_dir) { "./spec/fixtures/nfe/v3.10/"}
8
8
 
9
9
  it "renders a Simples Nacional NF-e using CSOSN" do
10
10
  danfe = BrDanfe::Danfe.new(File.read("#{base_dir}nfe_simples_nacional.xml"))
@@ -17,7 +17,7 @@ describe BrDanfe::Danfe do
17
17
 
18
18
  describe "#save_pdf" do
19
19
  context "when xml's version is v2.00" do
20
- let(:base_dir) { "./spec/fixtures/v2.00/"}
20
+ let(:base_dir) { "./spec/fixtures/nfe/v2.00/"}
21
21
 
22
22
  before { File.delete(output_pdf) if File.exist?(output_pdf) }
23
23
 
@@ -68,7 +68,7 @@ describe BrDanfe::Danfe do
68
68
  end
69
69
 
70
70
  context "when xml's version is v3.10" do
71
- let(:base_dir) { "./spec/fixtures/v3.10/"}
71
+ let(:base_dir) { "./spec/fixtures/nfe/v3.10/"}
72
72
 
73
73
  before { File.delete(output_pdf) if File.exist?(output_pdf) }
74
74
 
@@ -0,0 +1,511 @@
1
+ %PDF-1.3
2
+ %����
3
+ 1 0 obj
4
+ << /Creator <feff0050007200610077006e>
5
+ /Producer <feff0050007200610077006e>
6
+ >>
7
+ endobj
8
+ 2 0 obj
9
+ << /Type /Catalog
10
+ /Pages 3 0 R
11
+ >>
12
+ endobj
13
+ 3 0 obj
14
+ << /Type /Pages
15
+ /Count 1
16
+ /Kids [5 0 R]
17
+ >>
18
+ endobj
19
+ 4 0 obj
20
+ << /Length 6957
21
+ >>
22
+ stream
23
+ q
24
+ 0.3 w
25
+ 40.000 766.890 m
26
+ 40.000 806.890 l
27
+ 42.000 806.890 l
28
+ 42.000 766.890 l
29
+ 40.000 766.890 l
30
+ f
31
+ 43.000 766.890 m
32
+ 43.000 806.890 l
33
+ 44.000 806.890 l
34
+ 44.000 766.890 l
35
+ 43.000 766.890 l
36
+ f
37
+ 46.000 766.890 m
38
+ 46.000 806.890 l
39
+ 49.000 806.890 l
40
+ 49.000 766.890 l
41
+ 46.000 766.890 l
42
+ f
43
+ 51.000 766.890 m
44
+ 51.000 806.890 l
45
+ 52.000 806.890 l
46
+ 52.000 766.890 l
47
+ 51.000 766.890 l
48
+ f
49
+ 53.000 766.890 m
50
+ 53.000 806.890 l
51
+ 55.000 806.890 l
52
+ 55.000 766.890 l
53
+ 53.000 766.890 l
54
+ f
55
+ 56.000 766.890 m
56
+ 56.000 806.890 l
57
+ 59.000 806.890 l
58
+ 59.000 766.890 l
59
+ 56.000 766.890 l
60
+ f
61
+ 62.000 766.890 m
62
+ 62.000 806.890 l
63
+ 63.000 806.890 l
64
+ 63.000 766.890 l
65
+ 62.000 766.890 l
66
+ f
67
+ 64.000 766.890 m
68
+ 64.000 806.890 l
69
+ 67.000 806.890 l
70
+ 67.000 766.890 l
71
+ 64.000 766.890 l
72
+ f
73
+ 69.000 766.890 m
74
+ 69.000 806.890 l
75
+ 71.000 806.890 l
76
+ 71.000 766.890 l
77
+ 69.000 766.890 l
78
+ f
79
+ 73.000 766.890 m
80
+ 73.000 806.890 l
81
+ 74.000 806.890 l
82
+ 74.000 766.890 l
83
+ 73.000 766.890 l
84
+ f
85
+ 76.000 766.890 m
86
+ 76.000 806.890 l
87
+ 77.000 806.890 l
88
+ 77.000 766.890 l
89
+ 76.000 766.890 l
90
+ f
91
+ 79.000 766.890 m
92
+ 79.000 806.890 l
93
+ 81.000 806.890 l
94
+ 81.000 766.890 l
95
+ 79.000 766.890 l
96
+ f
97
+ 84.000 766.890 m
98
+ 84.000 806.890 l
99
+ 85.000 806.890 l
100
+ 85.000 766.890 l
101
+ 84.000 766.890 l
102
+ f
103
+ 87.000 766.890 m
104
+ 87.000 806.890 l
105
+ 88.000 806.890 l
106
+ 88.000 766.890 l
107
+ 87.000 766.890 l
108
+ f
109
+ 90.000 766.890 m
110
+ 90.000 806.890 l
111
+ 92.000 806.890 l
112
+ 92.000 766.890 l
113
+ 90.000 766.890 l
114
+ f
115
+ 95.000 766.890 m
116
+ 95.000 806.890 l
117
+ 99.000 806.890 l
118
+ 99.000 766.890 l
119
+ 95.000 766.890 l
120
+ f
121
+ 101.000 766.890 m
122
+ 101.000 806.890 l
123
+ 102.000 806.890 l
124
+ 102.000 766.890 l
125
+ 101.000 766.890 l
126
+ f
127
+ 104.000 766.890 m
128
+ 104.000 806.890 l
129
+ 105.000 806.890 l
130
+ 105.000 766.890 l
131
+ 104.000 766.890 l
132
+ f
133
+ 106.000 766.890 m
134
+ 106.000 806.890 l
135
+ 107.000 806.890 l
136
+ 107.000 766.890 l
137
+ 106.000 766.890 l
138
+ f
139
+ 108.000 766.890 m
140
+ 108.000 806.890 l
141
+ 109.000 806.890 l
142
+ 109.000 766.890 l
143
+ 108.000 766.890 l
144
+ f
145
+ 112.000 766.890 m
146
+ 112.000 806.890 l
147
+ 114.000 806.890 l
148
+ 114.000 766.890 l
149
+ 112.000 766.890 l
150
+ f
151
+ 117.000 766.890 m
152
+ 117.000 806.890 l
153
+ 118.000 806.890 l
154
+ 118.000 766.890 l
155
+ 117.000 766.890 l
156
+ f
157
+ 119.000 766.890 m
158
+ 119.000 806.890 l
159
+ 121.000 806.890 l
160
+ 121.000 766.890 l
161
+ 119.000 766.890 l
162
+ f
163
+ 123.000 766.890 m
164
+ 123.000 806.890 l
165
+ 124.000 806.890 l
166
+ 124.000 766.890 l
167
+ 123.000 766.890 l
168
+ f
169
+ 128.000 766.890 m
170
+ 128.000 806.890 l
171
+ 130.000 806.890 l
172
+ 130.000 766.890 l
173
+ 128.000 766.890 l
174
+ f
175
+ 131.000 766.890 m
176
+ 131.000 806.890 l
177
+ 133.000 806.890 l
178
+ 133.000 766.890 l
179
+ 131.000 766.890 l
180
+ f
181
+ 135.000 766.890 m
182
+ 135.000 806.890 l
183
+ 137.000 806.890 l
184
+ 137.000 766.890 l
185
+ 135.000 766.890 l
186
+ f
187
+ 139.000 766.890 m
188
+ 139.000 806.890 l
189
+ 141.000 806.890 l
190
+ 141.000 766.890 l
191
+ 139.000 766.890 l
192
+ f
193
+ 143.000 766.890 m
194
+ 143.000 806.890 l
195
+ 145.000 806.890 l
196
+ 145.000 766.890 l
197
+ 143.000 766.890 l
198
+ f
199
+ 146.000 766.890 m
200
+ 146.000 806.890 l
201
+ 148.000 806.890 l
202
+ 148.000 766.890 l
203
+ 146.000 766.890 l
204
+ f
205
+ 150.000 766.890 m
206
+ 150.000 806.890 l
207
+ 154.000 806.890 l
208
+ 154.000 766.890 l
209
+ 150.000 766.890 l
210
+ f
211
+ 156.000 766.890 m
212
+ 156.000 806.890 l
213
+ 157.000 806.890 l
214
+ 157.000 766.890 l
215
+ 156.000 766.890 l
216
+ f
217
+ 159.000 766.890 m
218
+ 159.000 806.890 l
219
+ 160.000 806.890 l
220
+ 160.000 766.890 l
221
+ 159.000 766.890 l
222
+ f
223
+ 161.000 766.890 m
224
+ 161.000 806.890 l
225
+ 164.000 806.890 l
226
+ 164.000 766.890 l
227
+ 161.000 766.890 l
228
+ f
229
+ 165.000 766.890 m
230
+ 165.000 806.890 l
231
+ 166.000 806.890 l
232
+ 166.000 766.890 l
233
+ 165.000 766.890 l
234
+ f
235
+ 169.000 766.890 m
236
+ 169.000 806.890 l
237
+ 171.000 806.890 l
238
+ 171.000 766.890 l
239
+ 169.000 766.890 l
240
+ f
241
+ 172.000 766.890 m
242
+ 172.000 806.890 l
243
+ 174.000 806.890 l
244
+ 174.000 766.890 l
245
+ 172.000 766.890 l
246
+ f
247
+ 175.000 766.890 m
248
+ 175.000 806.890 l
249
+ 177.000 806.890 l
250
+ 177.000 766.890 l
251
+ 175.000 766.890 l
252
+ f
253
+ 179.000 766.890 m
254
+ 179.000 806.890 l
255
+ 181.000 806.890 l
256
+ 181.000 766.890 l
257
+ 179.000 766.890 l
258
+ f
259
+ 183.000 766.890 m
260
+ 183.000 806.890 l
261
+ 185.000 806.890 l
262
+ 185.000 766.890 l
263
+ 183.000 766.890 l
264
+ f
265
+ 187.000 766.890 m
266
+ 187.000 806.890 l
267
+ 188.000 806.890 l
268
+ 188.000 766.890 l
269
+ 187.000 766.890 l
270
+ f
271
+ 191.000 766.890 m
272
+ 191.000 806.890 l
273
+ 192.000 806.890 l
274
+ 192.000 766.890 l
275
+ 191.000 766.890 l
276
+ f
277
+ 194.000 766.890 m
278
+ 194.000 806.890 l
279
+ 196.000 806.890 l
280
+ 196.000 766.890 l
281
+ 194.000 766.890 l
282
+ f
283
+ 197.000 766.890 m
284
+ 197.000 806.890 l
285
+ 199.000 806.890 l
286
+ 199.000 766.890 l
287
+ 197.000 766.890 l
288
+ f
289
+ 201.000 766.890 m
290
+ 201.000 806.890 l
291
+ 203.000 806.890 l
292
+ 203.000 766.890 l
293
+ 201.000 766.890 l
294
+ f
295
+ 205.000 766.890 m
296
+ 205.000 806.890 l
297
+ 207.000 806.890 l
298
+ 207.000 766.890 l
299
+ 205.000 766.890 l
300
+ f
301
+ 208.000 766.890 m
302
+ 208.000 806.890 l
303
+ 210.000 806.890 l
304
+ 210.000 766.890 l
305
+ 208.000 766.890 l
306
+ f
307
+ 212.000 766.890 m
308
+ 212.000 806.890 l
309
+ 214.000 806.890 l
310
+ 214.000 766.890 l
311
+ 212.000 766.890 l
312
+ f
313
+ 216.000 766.890 m
314
+ 216.000 806.890 l
315
+ 218.000 806.890 l
316
+ 218.000 766.890 l
317
+ 216.000 766.890 l
318
+ f
319
+ 219.000 766.890 m
320
+ 219.000 806.890 l
321
+ 221.000 806.890 l
322
+ 221.000 766.890 l
323
+ 219.000 766.890 l
324
+ f
325
+ 223.000 766.890 m
326
+ 223.000 806.890 l
327
+ 225.000 806.890 l
328
+ 225.000 766.890 l
329
+ 223.000 766.890 l
330
+ f
331
+ 227.000 766.890 m
332
+ 227.000 806.890 l
333
+ 228.000 806.890 l
334
+ 228.000 766.890 l
335
+ 227.000 766.890 l
336
+ f
337
+ 231.000 766.890 m
338
+ 231.000 806.890 l
339
+ 233.000 806.890 l
340
+ 233.000 766.890 l
341
+ 231.000 766.890 l
342
+ f
343
+ 236.000 766.890 m
344
+ 236.000 806.890 l
345
+ 237.000 806.890 l
346
+ 237.000 766.890 l
347
+ 236.000 766.890 l
348
+ f
349
+ 238.000 766.890 m
350
+ 238.000 806.890 l
351
+ 240.000 806.890 l
352
+ 240.000 766.890 l
353
+ 238.000 766.890 l
354
+ f
355
+ 242.000 766.890 m
356
+ 242.000 806.890 l
357
+ 243.000 806.890 l
358
+ 243.000 766.890 l
359
+ 242.000 766.890 l
360
+ f
361
+ 246.000 766.890 m
362
+ 246.000 806.890 l
363
+ 247.000 806.890 l
364
+ 247.000 766.890 l
365
+ 246.000 766.890 l
366
+ f
367
+ 249.000 766.890 m
368
+ 249.000 806.890 l
369
+ 251.000 806.890 l
370
+ 251.000 766.890 l
371
+ 249.000 766.890 l
372
+ f
373
+ 252.000 766.890 m
374
+ 252.000 806.890 l
375
+ 254.000 806.890 l
376
+ 254.000 766.890 l
377
+ 252.000 766.890 l
378
+ f
379
+ 256.000 766.890 m
380
+ 256.000 806.890 l
381
+ 258.000 806.890 l
382
+ 258.000 766.890 l
383
+ 256.000 766.890 l
384
+ f
385
+ 260.000 766.890 m
386
+ 260.000 806.890 l
387
+ 262.000 806.890 l
388
+ 262.000 766.890 l
389
+ 260.000 766.890 l
390
+ f
391
+ 263.000 766.890 m
392
+ 263.000 806.890 l
393
+ 265.000 806.890 l
394
+ 265.000 766.890 l
395
+ 263.000 766.890 l
396
+ f
397
+ 267.000 766.890 m
398
+ 267.000 806.890 l
399
+ 269.000 806.890 l
400
+ 269.000 766.890 l
401
+ 267.000 766.890 l
402
+ f
403
+ 271.000 766.890 m
404
+ 271.000 806.890 l
405
+ 272.000 806.890 l
406
+ 272.000 766.890 l
407
+ 271.000 766.890 l
408
+ f
409
+ 274.000 766.890 m
410
+ 274.000 806.890 l
411
+ 275.000 806.890 l
412
+ 275.000 766.890 l
413
+ 274.000 766.890 l
414
+ f
415
+ 277.000 766.890 m
416
+ 277.000 806.890 l
417
+ 279.000 806.890 l
418
+ 279.000 766.890 l
419
+ 277.000 766.890 l
420
+ f
421
+ 282.000 766.890 m
422
+ 282.000 806.890 l
423
+ 283.000 806.890 l
424
+ 283.000 766.890 l
425
+ 282.000 766.890 l
426
+ f
427
+ 285.000 766.890 m
428
+ 285.000 806.890 l
429
+ 286.000 806.890 l
430
+ 286.000 766.890 l
431
+ 285.000 766.890 l
432
+ f
433
+ 287.000 766.890 m
434
+ 287.000 806.890 l
435
+ 291.000 806.890 l
436
+ 291.000 766.890 l
437
+ 287.000 766.890 l
438
+ f
439
+ 293.000 766.890 m
440
+ 293.000 806.890 l
441
+ 295.000 806.890 l
442
+ 295.000 766.890 l
443
+ 293.000 766.890 l
444
+ f
445
+ 296.000 766.890 m
446
+ 296.000 806.890 l
447
+ 299.000 806.890 l
448
+ 299.000 766.890 l
449
+ 296.000 766.890 l
450
+ f
451
+ 302.000 766.890 m
452
+ 302.000 806.890 l
453
+ 303.000 806.890 l
454
+ 303.000 766.890 l
455
+ 302.000 766.890 l
456
+ f
457
+ 304.000 766.890 m
458
+ 304.000 806.890 l
459
+ 306.000 806.890 l
460
+ 306.000 766.890 l
461
+ 304.000 766.890 l
462
+ f
463
+ 309.000 766.890 m
464
+ 309.000 806.890 l
465
+ 312.000 806.890 l
466
+ 312.000 766.890 l
467
+ 309.000 766.890 l
468
+ f
469
+ 313.000 766.890 m
470
+ 313.000 806.890 l
471
+ 314.000 806.890 l
472
+ 314.000 766.890 l
473
+ 313.000 766.890 l
474
+ f
475
+ 315.000 766.890 m
476
+ 315.000 806.890 l
477
+ 317.000 806.890 l
478
+ 317.000 766.890 l
479
+ 315.000 766.890 l
480
+ f
481
+ 30.000 761.890 535.280 50.000 re
482
+ S
483
+ Q
484
+
485
+ endstream
486
+ endobj
487
+ 5 0 obj
488
+ << /Type /Page
489
+ /Parent 3 0 R
490
+ /MediaBox [0 0 595.28 841.89]
491
+ /Contents 4 0 R
492
+ /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
493
+ >>
494
+ >>
495
+ endobj
496
+ xref
497
+ 0 6
498
+ 0000000000 65535 f
499
+ 0000000015 00000 n
500
+ 0000000109 00000 n
501
+ 0000000158 00000 n
502
+ 0000000215 00000 n
503
+ 0000007224 00000 n
504
+ trailer
505
+ << /Size 6
506
+ /Root 2 0 R
507
+ /Info 1 0 R
508
+ >>
509
+ startxref
510
+ 7380
511
+ %%EOF