mumuki-gobstones-runner 2.7.1 → 2.8.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.
- checksums.yaml +4 -4
- data/lib/assets_server.rb +20 -1
- data/lib/checker.rb +2 -2
- data/lib/game_framework/default.gbs.erb +3 -0
- data/lib/game_framework/default.xml.erb +3 -0
- data/lib/game_framework/extra.gbs.erb +84 -0
- data/lib/game_framework/program.gbs.erb +5 -0
- data/lib/game_framework/program.xml.erb +17 -0
- data/lib/gobstones.rb +1 -0
- data/lib/gobstones/batch.rb +4 -2
- data/lib/gobstones/batch_parser.rb +5 -1
- data/lib/gobstones/compilation_mode.rb +60 -0
- data/lib/gobstones_runner.rb +3 -1
- data/lib/public/full-kindergarten-toolbox.xml +5 -0
- data/lib/public/local-media/bool-false.svg +24 -0
- data/lib/public/local-media/bool-true.svg +17 -0
- data/lib/public/local-media/clean.png +0 -0
- data/lib/public/local-media/color-azul.svg +44 -0
- data/lib/public/local-media/color-negro.svg +44 -0
- data/lib/public/local-media/color-rojo.svg +44 -0
- data/lib/public/local-media/color-verde.svg +44 -0
- data/lib/public/local-media/direccion-este.svg +38 -0
- data/lib/public/local-media/direccion-norte.svg +38 -0
- data/lib/public/local-media/direccion-oeste.svg +38 -0
- data/lib/public/local-media/direccion-sur.svg +38 -0
- data/lib/public/local-media/hand.png +0 -0
- data/lib/public/local-media/main-procedure.png +0 -0
- data/lib/public/local-media/minus.png +0 -0
- data/lib/public/local-media/plus.png +0 -0
- data/lib/public/local-media/program.png +0 -0
- data/lib/public/local-media/repeticion-simple.png +0 -0
- data/lib/public/media/1x1.gif +0 -0
- data/lib/public/media/ShiftDown.png +0 -0
- data/lib/public/media/ShiftLeft.png +0 -0
- data/lib/public/media/ShiftRight.png +0 -0
- data/lib/public/media/ShiftUp.png +0 -0
- data/lib/public/media/click.mp3 +0 -0
- data/lib/public/media/click.ogg +0 -0
- data/lib/public/media/click.wav +0 -0
- data/lib/public/media/delete.mp3 +0 -0
- data/lib/public/media/delete.ogg +0 -0
- data/lib/public/media/delete.wav +0 -0
- data/lib/public/media/disconnect.mp3 +0 -0
- data/lib/public/media/disconnect.ogg +0 -0
- data/lib/public/media/disconnect.wav +0 -0
- data/lib/public/media/quote0.png +0 -0
- data/lib/public/media/quote1.png +0 -0
- data/lib/public/media/sprites.png +0 -0
- data/lib/public/media/sprites.svg +74 -0
- data/lib/public/minimal-kindergarten-toolbox.xml +2 -0
- data/lib/render/boards.html.erb +4 -6
- data/lib/render/editor/editor.css +9 -0
- data/lib/render/editor/{editor.html → editor.html.erb} +143 -18
- data/lib/render/html_renderer.rb +2 -2
- data/lib/render/with_renderer.rb +6 -3
- data/lib/version_hook.rb +1 -1
- metadata +91 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b4f5d5fb336bc9ac00ecd24b0ced150583e8d0ce3d62d59be42418731b208c8
|
4
|
+
data.tar.gz: 44de0eb3307ccbff273e2c687d451b7ab4cc1bbef78deef1bdb2fe34870fd6c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c2669f3fda5e9e864c5c445e5fc1de4464fb079420f1c08a256bfb1b09612b70d350ac4d7bcbb929c71a5a2dea8c6f27339cdf7f451821e7857ff5676885ec4
|
7
|
+
data.tar.gz: ca800ccace6b8df687ea08ab8cf1fb21a1d7b1e61979ce03c6d702016f3b8f8b86020bd047a60eb6c0ea0ef95c300bef56579fa6da54207494b890f17d3b3d8a
|
data/lib/assets_server.rb
CHANGED
@@ -17,6 +17,12 @@ class Mumukit::Server::App < Sinatra::Base
|
|
17
17
|
get_local_asset "#{asset_type}/#{name}.svg", "lib/public/#{name}.svg", 'image/svg+xml'
|
18
18
|
end
|
19
19
|
|
20
|
+
def self.get_media_assets(folder)
|
21
|
+
Dir.glob("lib/public/#{folder}/*").each do |path|
|
22
|
+
get_local_asset "#{folder}/#{File.basename path}", path
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
20
26
|
['polymer', 'polymer-mini', 'polymer-micro'].each { |name|
|
21
27
|
get_board_asset "#{name}.html", "htmls/vendor/#{name}.html", 'text/html'
|
22
28
|
}
|
@@ -29,9 +35,13 @@ class Mumukit::Server::App < Sinatra::Base
|
|
29
35
|
get_local_asset 'layout/layout.html', 'lib/render/layout/layout.html', 'text/html'
|
30
36
|
get_local_asset 'editor/editor.js', 'lib/render/editor/editor.js', 'application/javascript'
|
31
37
|
get_local_asset 'editor/editor.css', 'lib/render/editor/editor.css', 'text/css'
|
32
|
-
get_local_asset 'editor/editor.html', 'lib/render/editor/editor.html', 'text/html'
|
33
38
|
get_local_asset 'editor/hammer.min.js', 'lib/render/editor/hammer.min.js', 'application/javascript'
|
34
39
|
get_local_asset 'boom.png', 'lib/public/boom.png', 'image/png'
|
40
|
+
get_local_asset 'full-kindergarten-toolbox.xml', 'lib/public/full-kindergarten-toolbox.xml', 'text/plain'
|
41
|
+
get_local_asset 'minimal-kindergarten-toolbox.xml', 'lib/public/minimal-kindergarten-toolbox.xml', 'text/plain'
|
42
|
+
|
43
|
+
get_media_assets 'media'
|
44
|
+
get_media_assets 'local-media'
|
35
45
|
|
36
46
|
['red', 'blue', 'green', 'black'].each do |name|
|
37
47
|
get_local_svg(name, 'editor')
|
@@ -40,4 +50,13 @@ class Mumukit::Server::App < Sinatra::Base
|
|
40
50
|
['attires_enabled', 'attires_disabled'].each do |name|
|
41
51
|
get_local_svg(name, 'layout')
|
42
52
|
end
|
53
|
+
|
54
|
+
get '/assets/editor/editor.html' do
|
55
|
+
cross_origin
|
56
|
+
@game_framework_extra = Gobstones::CompilationMode::GameFramework.extra_code
|
57
|
+
@game_framework_program = Gobstones::CompilationMode::GameFramework.program_code
|
58
|
+
@game_framework_default = Gobstones::CompilationMode::GameFramework.default_code
|
59
|
+
@assets_url = "//#{request.host_with_port}/assets"
|
60
|
+
erb File.read('lib/render/editor/editor.html.erb')
|
61
|
+
end
|
43
62
|
end
|
data/lib/checker.rb
CHANGED
@@ -49,7 +49,7 @@ module Gobstones
|
|
49
49
|
fail_with status: :check_error_failed_another_reason,
|
50
50
|
result: {
|
51
51
|
reason: result[:finalBoardError],
|
52
|
-
expected_code: expected
|
52
|
+
expected_code: I18n.t("code_#{expected}")
|
53
53
|
} if reason_code != expected
|
54
54
|
end
|
55
55
|
|
@@ -102,7 +102,7 @@ module Gobstones
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def fail_with(error)
|
105
|
-
fail error
|
105
|
+
fail error[:status], details: error[:result]
|
106
106
|
end
|
107
107
|
|
108
108
|
def board_json(board)
|
@@ -0,0 +1,84 @@
|
|
1
|
+
procedure Before() {
|
2
|
+
x := 0
|
3
|
+
y := 0
|
4
|
+
|
5
|
+
while(puedeMover(Sur)) {
|
6
|
+
x := x + 1
|
7
|
+
Mover(Sur)
|
8
|
+
}
|
9
|
+
while(puedeMover(Oeste)) {
|
10
|
+
y := y + 1
|
11
|
+
Mover(Oeste)
|
12
|
+
}
|
13
|
+
|
14
|
+
NextStage()
|
15
|
+
|
16
|
+
while(x > 0) {
|
17
|
+
x := x - 1
|
18
|
+
Mover(Norte)
|
19
|
+
}
|
20
|
+
while(y > 0) {
|
21
|
+
y := y - 1
|
22
|
+
Mover(Este)
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
procedure After() {
|
27
|
+
GoToOrigin()
|
28
|
+
NextStage()
|
29
|
+
}
|
30
|
+
|
31
|
+
procedure NextStage() {
|
32
|
+
while(puedeMover(Norte)) {
|
33
|
+
NextRowStage()
|
34
|
+
Mover(Norte)
|
35
|
+
}
|
36
|
+
NextRowStage()
|
37
|
+
GoToOrigin()
|
38
|
+
}
|
39
|
+
|
40
|
+
procedure NextRowStage() {
|
41
|
+
while(puedeMover(Este)) {
|
42
|
+
Poner(Verde)
|
43
|
+
Mover(Este)
|
44
|
+
}
|
45
|
+
Poner(Verde)
|
46
|
+
IrAlBorde(Oeste)
|
47
|
+
}
|
48
|
+
|
49
|
+
procedure ShiftLeft() {
|
50
|
+
ShiftTo(Oeste)
|
51
|
+
}
|
52
|
+
|
53
|
+
procedure ShiftRight() {
|
54
|
+
ShiftTo(Este)
|
55
|
+
}
|
56
|
+
|
57
|
+
procedure ShiftUp() {
|
58
|
+
ShiftTo(Norte)
|
59
|
+
}
|
60
|
+
|
61
|
+
procedure ShiftDown() {
|
62
|
+
ShiftTo(Sur)
|
63
|
+
}
|
64
|
+
|
65
|
+
procedure ShiftTo(dir) {
|
66
|
+
if (puedeMover(dir)) {
|
67
|
+
Sacar(Rojo)
|
68
|
+
Mover(dir)
|
69
|
+
Poner(Rojo)
|
70
|
+
CheckCollision()
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
procedure CheckCollision() {
|
75
|
+
if (hayBolitas(Azul) && nroBolitas(Azul) mod 2 == 0) {
|
76
|
+
After();
|
77
|
+
BOOM("Colision")
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
procedure GoToOrigin() {
|
82
|
+
IrAlBorde(Sur)
|
83
|
+
IrAlBorde(Oeste)
|
84
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<block type="Program" deletable="false" x="189" y="177">
|
2
|
+
<statement name="program">
|
3
|
+
<block type="procedures_callnoreturnnoparams">
|
4
|
+
<mutation name="Before"></mutation>
|
5
|
+
<next>
|
6
|
+
<block type="procedures_callnoreturnnoparams">
|
7
|
+
<mutation name="Main"></mutation>
|
8
|
+
<next>
|
9
|
+
<block type="procedures_callnoreturnnoparams">
|
10
|
+
<mutation name="After"></mutation>
|
11
|
+
</block>
|
12
|
+
</next>
|
13
|
+
</block>
|
14
|
+
</next>
|
15
|
+
</block>
|
16
|
+
</statement>
|
17
|
+
</block>
|
data/lib/gobstones.rb
CHANGED
data/lib/gobstones/batch.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
class Gobstones::Batch
|
2
2
|
attr_accessor :options, :examples, :content, :extra
|
3
|
+
delegate :compile_content, :compile_extra, to: :@compilation_mode
|
3
4
|
|
4
5
|
def initialize(content, examples, extra, options)
|
5
6
|
@content = content
|
6
7
|
@examples = examples
|
7
8
|
@extra = extra
|
8
9
|
@options = options
|
10
|
+
@compilation_mode = @options[:game_framework] ? Gobstones::CompilationMode::GameFramework : Gobstones::CompilationMode::Classic
|
9
11
|
end
|
10
12
|
|
11
13
|
def run_tests!(output)
|
@@ -16,8 +18,8 @@ class Gobstones::Batch
|
|
16
18
|
|
17
19
|
def to_json
|
18
20
|
{
|
19
|
-
code: content,
|
20
|
-
extraCode: extra,
|
21
|
+
code: compile_content(content),
|
22
|
+
extraCode: compile_extra(extra),
|
21
23
|
examples: examples.map { |example| example_json(example) }
|
22
24
|
}.to_json
|
23
25
|
end
|
@@ -3,7 +3,7 @@ module Gobstones::BatchParser
|
|
3
3
|
def parse(request)
|
4
4
|
test = parse_test(request)
|
5
5
|
|
6
|
-
options = parse_options
|
6
|
+
options = parse_options(test).merge(parse_settings(request))
|
7
7
|
examples = parse_examples test, options
|
8
8
|
|
9
9
|
Gobstones::Batch.new request.content, examples, request.extra, options
|
@@ -11,6 +11,10 @@ module Gobstones::BatchParser
|
|
11
11
|
|
12
12
|
private
|
13
13
|
|
14
|
+
def parse_settings(request)
|
15
|
+
{ game_framework: !!request.dig(:settings, 'game_framework') }
|
16
|
+
end
|
17
|
+
|
14
18
|
def parse_test(request)
|
15
19
|
YAML.load(request.test).deep_symbolize_keys
|
16
20
|
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module Gobstones
|
2
|
+
module CompilationMode
|
3
|
+
module Classic
|
4
|
+
class << self
|
5
|
+
def compile_extra(extra)
|
6
|
+
extra
|
7
|
+
end
|
8
|
+
|
9
|
+
def compile_content(content)
|
10
|
+
content
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
module GameFramework
|
16
|
+
class << self
|
17
|
+
def compile_extra(extra)
|
18
|
+
[extra, extra_code]
|
19
|
+
end
|
20
|
+
|
21
|
+
def compile_content(content)
|
22
|
+
if blockly_code?(content)
|
23
|
+
xml = Nokogiri::XML(content)
|
24
|
+
xml.root.add_child render_framework_file('program.xml')
|
25
|
+
xml.to_xhtml.gsub(/\n\s*/, '')
|
26
|
+
else
|
27
|
+
<<~GBS
|
28
|
+
#{content}
|
29
|
+
|
30
|
+
#{program_code}
|
31
|
+
GBS
|
32
|
+
.chop
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def extra_code
|
37
|
+
render_framework_file 'extra.gbs'
|
38
|
+
end
|
39
|
+
|
40
|
+
def program_code
|
41
|
+
render_framework_file 'program.gbs'
|
42
|
+
end
|
43
|
+
|
44
|
+
def default_code
|
45
|
+
render_framework_file 'default.xml'
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def blockly_code?(content)
|
51
|
+
content.strip.start_with? '<xml'
|
52
|
+
end
|
53
|
+
|
54
|
+
def render_framework_file(name)
|
55
|
+
ERB.new(File.read("lib/game_framework/#{name}.erb")).result
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
data/lib/gobstones_runner.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
require 'mumukit'
|
2
2
|
require 'erb'
|
3
|
+
require 'nokogiri'
|
3
4
|
|
4
5
|
I18n.load_translations_path File.join(__dir__, 'locales', '*.yml')
|
5
6
|
|
6
7
|
Mumukit.runner_name = 'gobstones'
|
7
8
|
Mumukit.configure do |config|
|
8
|
-
config.docker_image = 'mumuki/mumuki-gobstones-worker:9.
|
9
|
+
config.docker_image = 'mumuki/mumuki-gobstones-worker:9.1'
|
9
10
|
config.content_type = 'html'
|
10
11
|
config.structured = true
|
12
|
+
config.settings = true
|
11
13
|
end
|
12
14
|
|
13
15
|
require_relative './gobstones'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_1">
|
14
|
+
|
15
|
+
<line fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="3.836" y1="3.836" x2="10.336" y2="10.336"/>
|
16
|
+
|
17
|
+
<line fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="10.336" y1="3.836" x2="3.836" y2="10.336"/>
|
18
|
+
</g>
|
19
|
+
<g id="Layer_4" display="none">
|
20
|
+
|
21
|
+
<polyline display="inline" fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
22
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
23
|
+
</g>
|
24
|
+
</svg>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_1">
|
14
|
+
<polyline fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
15
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
16
|
+
</g>
|
17
|
+
</svg>
|
Binary file
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_7">
|
14
|
+
</g>
|
15
|
+
<g id="Layer_1">
|
16
|
+
|
17
|
+
<circle fill="#1B75BB" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="7.087" cy="7.086" r="3.688"/>
|
18
|
+
</g>
|
19
|
+
<g id="Layer_6" display="none">
|
20
|
+
<g display="inline">
|
21
|
+
<g>
|
22
|
+
|
23
|
+
<path fill="#231F20" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
24
|
+
M7.082,3.701c0.021,1.21-0.007,5.512,0,6.771L0.889,7.086L7.082,3.701z"/>
|
25
|
+
</g>
|
26
|
+
<g>
|
27
|
+
|
28
|
+
<path fill="none" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
29
|
+
M7.09,3.701c-0.021,1.21,0.008,5.512,0,6.771l6.194-3.386L7.09,3.701z"/>
|
30
|
+
</g>
|
31
|
+
</g>
|
32
|
+
</g>
|
33
|
+
<g id="Layer_5" display="none">
|
34
|
+
|
35
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="3.836" y1="3.836" x2="10.336" y2="10.336"/>
|
36
|
+
|
37
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="10.336" y1="3.836" x2="3.836" y2="10.336"/>
|
38
|
+
</g>
|
39
|
+
<g id="Layer_4" display="none">
|
40
|
+
|
41
|
+
<polyline display="inline" fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
42
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
43
|
+
</g>
|
44
|
+
</svg>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
5
|
+
width="14.173px" height="14.173px" viewBox="0 0 14.173 14.173" enable-background="new 0 0 14.173 14.173" xml:space="preserve">
|
6
|
+
<g id="Layer_2" display="none">
|
7
|
+
<g display="inline">
|
8
|
+
<rect x="-5.132" y="-3.933" fill="#5CBEFF" width="67.306" height="25.396"/>
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Layer_3" display="none">
|
12
|
+
</g>
|
13
|
+
<g id="Layer_7">
|
14
|
+
</g>
|
15
|
+
<g id="Layer_1">
|
16
|
+
|
17
|
+
<circle fill="#404041" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="7.087" cy="7.086" r="3.688"/>
|
18
|
+
</g>
|
19
|
+
<g id="Layer_6" display="none">
|
20
|
+
<g display="inline">
|
21
|
+
<g>
|
22
|
+
|
23
|
+
<path fill="#231F20" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
24
|
+
M7.082,3.701c0.021,1.21-0.007,5.512,0,6.771L0.889,7.086L7.082,3.701z"/>
|
25
|
+
</g>
|
26
|
+
<g>
|
27
|
+
|
28
|
+
<path fill="none" stroke="#231F20" stroke-width="0.9761" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
|
29
|
+
M7.09,3.701c-0.021,1.21,0.008,5.512,0,6.771l6.194-3.386L7.09,3.701z"/>
|
30
|
+
</g>
|
31
|
+
</g>
|
32
|
+
</g>
|
33
|
+
<g id="Layer_5" display="none">
|
34
|
+
|
35
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="3.836" y1="3.836" x2="10.336" y2="10.336"/>
|
36
|
+
|
37
|
+
<line display="inline" fill="#FFFFFF" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="10.336" y1="3.836" x2="3.836" y2="10.336"/>
|
38
|
+
</g>
|
39
|
+
<g id="Layer_4" display="none">
|
40
|
+
|
41
|
+
<polyline display="inline" fill="none" stroke="#231F20" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="
|
42
|
+
10.958,4.801 6.388,9.372 3.215,6.094 "/>
|
43
|
+
</g>
|
44
|
+
</svg>
|