Compare commits
	
		
			6 Commits
		
	
	
		
			20190430
			...
			20200603-1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					31a938693a | ||
| 
						 | 
					45c89704f0 | ||
| 
						 | 
					8d3a0e92de | ||
| 
						 | 
					db78e3dcdb | ||
| 
						 | 
					da1deecb4c | ||
| 
						 | 
					df30ce9477 | 
							
								
								
									
										71
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						@@ -2,6 +2,13 @@
 | 
				
			|||||||
-- by Vanessa Dannenberg
 | 
					-- by Vanessa Dannenberg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
led_marquee = {}
 | 
					led_marquee = {}
 | 
				
			||||||
 | 
					led_marquee.scheduled_messages = {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					led_marquee.message_minimum_time   = tonumber(minetest.settings:get("led_marquee_message_minimum_time"))   or 0.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					led_marquee.message_schedule_dtime = tonumber(minetest.settings:get("led_marquee_message_schedule_dtime")) or 0.2
 | 
				
			||||||
 | 
					led_marquee.message_schedule_size  = tonumber(minetest.settings:get("led_marquee_message_schedule_size"))  or 10
 | 
				
			||||||
 | 
					led_marquee.relay_timer = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
local S
 | 
					local S
 | 
				
			||||||
if minetest.get_modpath("intllib") then
 | 
					if minetest.get_modpath("intllib") then
 | 
				
			||||||
@@ -128,7 +135,12 @@ local make_iso = function(s)
 | 
				
			|||||||
	local s2 = ""
 | 
						local s2 = ""
 | 
				
			||||||
	while i <= string.len(s) do
 | 
						while i <= string.len(s) do
 | 
				
			||||||
		if string.byte(s,i) > 159 then
 | 
							if string.byte(s,i) > 159 then
 | 
				
			||||||
			s2 = s2..string.char(get_iso(string.sub(s, i, i+1)))
 | 
								local ciso = get_iso(string.sub(s, i, i+1))
 | 
				
			||||||
 | 
								if ciso >= 0 and ciso < 256 then
 | 
				
			||||||
 | 
									s2 = s2..string.char(ciso)
 | 
				
			||||||
 | 
								else
 | 
				
			||||||
 | 
									s2 = s2..string.char(127)
 | 
				
			||||||
 | 
								end
 | 
				
			||||||
			i = i + 2
 | 
								i = i + 2
 | 
				
			||||||
		else
 | 
							else
 | 
				
			||||||
			s2 = s2..string.sub(s, i, i)
 | 
								s2 = s2..string.sub(s, i, i)
 | 
				
			||||||
@@ -143,7 +155,7 @@ end
 | 
				
			|||||||
led_marquee.set_timer = function(pos, timeout)
 | 
					led_marquee.set_timer = function(pos, timeout)
 | 
				
			||||||
	local timer = minetest.get_node_timer(pos)
 | 
						local timer = minetest.get_node_timer(pos)
 | 
				
			||||||
	timer:stop()
 | 
						timer:stop()
 | 
				
			||||||
	if not timeout or timeout < 0.2 or timeout > 5 then return false end
 | 
						if not timeout or timeout < led_marquee.message_minimum_time or timeout > 5 then return false end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if timeout > 0 then
 | 
						if timeout > 0 then
 | 
				
			||||||
		local meta = minetest.get_meta(pos)
 | 
							local meta = minetest.get_meta(pos)
 | 
				
			||||||
@@ -184,7 +196,7 @@ led_marquee.scroll_text = function(pos, elapsed, skip)
 | 
				
			|||||||
			break
 | 
								break
 | 
				
			||||||
		end
 | 
							end
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
	led_marquee.display_msg(pos, channel, "/"..colorchar..string.sub(msg, f)..string.rep(" ", skip + 1))
 | 
						led_marquee.schedule_msg(pos, channel, "/"..colorchar..string.sub(msg, f)..string.rep(" ", skip + 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	meta:set_int("index", f)
 | 
						meta:set_int("index", f)
 | 
				
			||||||
	if not elapsed or elapsed < 0.2 then return false end
 | 
						if not elapsed or elapsed < 0.2 then return false end
 | 
				
			||||||
@@ -213,6 +225,27 @@ led_marquee.decode_color = function(msg)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					minetest.register_globalstep(function(dtime)
 | 
				
			||||||
 | 
						if dtime <= led_marquee.message_schedule_dtime
 | 
				
			||||||
 | 
						  and (#led_marquee.scheduled_messages) > 0 then
 | 
				
			||||||
 | 
							led_marquee.display_msg(
 | 
				
			||||||
 | 
								led_marquee.scheduled_messages[1].pos,
 | 
				
			||||||
 | 
								led_marquee.scheduled_messages[1].channel,
 | 
				
			||||||
 | 
								led_marquee.scheduled_messages[1].msg
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
						table.remove(led_marquee.scheduled_messages, 1)
 | 
				
			||||||
 | 
					end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					led_marquee.schedule_msg = function(pos, channel, msg)
 | 
				
			||||||
 | 
						local idx = #led_marquee.scheduled_messages
 | 
				
			||||||
 | 
						led_marquee.scheduled_messages[idx+1] = { pos=pos, channel=channel, msg=msg }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if idx >= led_marquee.message_schedule_size then
 | 
				
			||||||
 | 
							table.remove(led_marquee.scheduled_messages, 1)
 | 
				
			||||||
 | 
						end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
led_marquee.display_msg = function(pos, channel, msg)
 | 
					led_marquee.display_msg = function(pos, channel, msg)
 | 
				
			||||||
	msg = string.sub(msg, 1, 6144).." "
 | 
						msg = string.sub(msg, 1, 6144).." "
 | 
				
			||||||
	if string.sub(msg,1,1) == string.char(255) then -- treat it as incoming UTF-8
 | 
						if string.sub(msg,1,1) == string.char(255) then -- treat it as incoming UTF-8
 | 
				
			||||||
@@ -312,13 +345,13 @@ local on_digiline_receive_string = function(pos, node, channel, msg)
 | 
				
			|||||||
				led_marquee.set_timer(pos, 0)
 | 
									led_marquee.set_timer(pos, 0)
 | 
				
			||||||
				msg = string.rep(" ", 2048)
 | 
									msg = string.rep(" ", 2048)
 | 
				
			||||||
				meta:set_string("last_msg", msg)
 | 
									meta:set_string("last_msg", msg)
 | 
				
			||||||
				led_marquee.display_msg(pos, channel, msg)
 | 
									led_marquee.schedule_msg(pos, channel, msg)
 | 
				
			||||||
				meta:set_int("index", 1)
 | 
									meta:set_int("index", 1)
 | 
				
			||||||
			elseif msg == "allon" then
 | 
								elseif msg == "allon" then
 | 
				
			||||||
				led_marquee.set_timer(pos, 0)
 | 
									led_marquee.set_timer(pos, 0)
 | 
				
			||||||
				msg = string.rep(string.char(144), 2048)
 | 
									msg = string.rep(string.char(144), 2048)
 | 
				
			||||||
				meta:set_string("last_msg", msg)
 | 
									meta:set_string("last_msg", msg)
 | 
				
			||||||
				led_marquee.display_msg(pos, channel, msg)
 | 
									led_marquee.schedule_msg(pos, channel, msg)
 | 
				
			||||||
				meta:set_int("index", 1)
 | 
									meta:set_int("index", 1)
 | 
				
			||||||
			elseif msg == "start_scroll" then
 | 
								elseif msg == "start_scroll" then
 | 
				
			||||||
				local timeout = meta:get_int("timeout")
 | 
									local timeout = meta:get_int("timeout")
 | 
				
			||||||
@@ -328,7 +361,7 @@ local on_digiline_receive_string = function(pos, node, channel, msg)
 | 
				
			|||||||
				return
 | 
									return
 | 
				
			||||||
			elseif string.sub(msg, 1, 12) == "scroll_speed" then
 | 
								elseif string.sub(msg, 1, 12) == "scroll_speed" then
 | 
				
			||||||
				local timeout = tonumber(string.sub(msg, 13))
 | 
									local timeout = tonumber(string.sub(msg, 13))
 | 
				
			||||||
				led_marquee.set_timer(pos, timeout)
 | 
									led_marquee.set_timer(pos, math.max(timeout, led_marquee.message_minimum_time))
 | 
				
			||||||
			elseif string.sub(msg, 1, 11) == "scroll_step" then
 | 
								elseif string.sub(msg, 1, 11) == "scroll_step" then
 | 
				
			||||||
				local skip = tonumber(string.sub(msg, 12))
 | 
									local skip = tonumber(string.sub(msg, 12))
 | 
				
			||||||
				led_marquee.scroll_text(pos, nil, skip)
 | 
									led_marquee.scroll_text(pos, nil, skip)
 | 
				
			||||||
@@ -343,7 +376,7 @@ local on_digiline_receive_string = function(pos, node, channel, msg)
 | 
				
			|||||||
				led_marquee.set_timer(pos, 0)
 | 
									led_marquee.set_timer(pos, 0)
 | 
				
			||||||
				local last_msg = meta:get_string("last_msg")
 | 
									local last_msg = meta:get_string("last_msg")
 | 
				
			||||||
				meta:set_string("last_msg", msg)
 | 
									meta:set_string("last_msg", msg)
 | 
				
			||||||
				led_marquee.display_msg(pos, channel, msg)
 | 
									led_marquee.schedule_msg(pos, channel, msg)
 | 
				
			||||||
				if last_msg ~= msg then
 | 
									if last_msg ~= msg then
 | 
				
			||||||
					meta:set_int("index", 1)
 | 
										meta:set_int("index", 1)
 | 
				
			||||||
				end
 | 
									end
 | 
				
			||||||
@@ -358,7 +391,7 @@ local on_digiline_receive_string = function(pos, node, channel, msg)
 | 
				
			|||||||
		end
 | 
							end
 | 
				
			||||||
	elseif msg and type(msg) == "number" then
 | 
						elseif msg and type(msg) == "number" then
 | 
				
			||||||
		meta:set_string("last_msg", tostring(msg))
 | 
							meta:set_string("last_msg", tostring(msg))
 | 
				
			||||||
		led_marquee.display_msg(pos, channel, tostring(msg))
 | 
							led_marquee.schedule_msg(pos, channel, tostring(msg))
 | 
				
			||||||
		meta:set_int("index", 1)
 | 
							meta:set_int("index", 1)
 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
@@ -369,23 +402,17 @@ for i = 31, 255 do
 | 
				
			|||||||
	local groups = { cracky = 2, not_in_creative_inventory = 1}
 | 
						local groups = { cracky = 2, not_in_creative_inventory = 1}
 | 
				
			||||||
	local light = LIGHT_MAX-2
 | 
						local light = LIGHT_MAX-2
 | 
				
			||||||
	local description = S("LED marquee panel ("..i..")")
 | 
						local description = S("LED marquee panel ("..i..")")
 | 
				
			||||||
	local tiles = {
 | 
						local leds = "led_marquee_char_"..i..".png^[mask:led_marquee_leds_on.png"
 | 
				
			||||||
				{ name="led_marquee_base.png", color="white"},
 | 
					 | 
				
			||||||
				{ name="led_marquee_leds_off.png", color="white"},
 | 
					 | 
				
			||||||
				"led_marquee_char_"..i..".png",
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if i == 31 then
 | 
						if i == 31 then
 | 
				
			||||||
		tiles = {
 | 
							leds ={
 | 
				
			||||||
			{ name="led_marquee_base.png", color="white"},
 | 
								name = "led_marquee_char_31.png^[mask:led_marquee_leds_on_cursor.png",
 | 
				
			||||||
			{ name="led_marquee_leds_off.png", color="white"},
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
				name = "led_marquee_char_31.png",
 | 
					 | 
				
			||||||
			animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 0.75}
 | 
								animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 0.75}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	end
 | 
						end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						local wimage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if i == 32 then
 | 
						if i == 32 then
 | 
				
			||||||
		groups = {cracky = 2}
 | 
							groups = {cracky = 2}
 | 
				
			||||||
		light = nil
 | 
							light = nil
 | 
				
			||||||
@@ -397,7 +424,11 @@ for i = 31, 255 do
 | 
				
			|||||||
		description = description,
 | 
							description = description,
 | 
				
			||||||
		drawtype = "mesh",
 | 
							drawtype = "mesh",
 | 
				
			||||||
		mesh = "led_marquee.obj",
 | 
							mesh = "led_marquee.obj",
 | 
				
			||||||
		tiles = tiles,
 | 
							tiles = {
 | 
				
			||||||
 | 
								{ name = "led_marquee_base.png", color = "white" },
 | 
				
			||||||
 | 
								{ name = "led_marquee_leds_off.png", color = "white" }
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							overlay_tiles = { "", leds },
 | 
				
			||||||
		inventory_image = wimage,
 | 
							inventory_image = wimage,
 | 
				
			||||||
		wield_image = wimage,
 | 
							wield_image = wimage,
 | 
				
			||||||
		palette="led_marquee_palette.png",
 | 
							palette="led_marquee_palette.png",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								mod.conf
									
									
									
									
									
								
							
							
						
						@@ -1 +1,2 @@
 | 
				
			|||||||
name = led_marquee
 | 
					name = led_marquee
 | 
				
			||||||
 | 
					min_minetest_version = 5.2.0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,10 +21,6 @@ v -0.500000 -0.453125 0.468750
 | 
				
			|||||||
v -0.500000 -0.453125 -0.468750
 | 
					v -0.500000 -0.453125 -0.468750
 | 
				
			||||||
v -0.500000 -0.437500 -0.484375
 | 
					v -0.500000 -0.437500 -0.484375
 | 
				
			||||||
v -0.500000 -0.437500 -0.500000
 | 
					v -0.500000 -0.437500 -0.500000
 | 
				
			||||||
v 0.500000 -0.449125 -0.468750
 | 
					 | 
				
			||||||
v -0.500000 -0.449125 -0.468750
 | 
					 | 
				
			||||||
v -0.500000 -0.449125 0.468750
 | 
					 | 
				
			||||||
v 0.500000 -0.449125 0.468750
 | 
					 | 
				
			||||||
vt 0.681855 0.961799
 | 
					vt 0.681855 0.961799
 | 
				
			||||||
vt 0.723891 0.992824
 | 
					vt 0.723891 0.992824
 | 
				
			||||||
vt 0.723891 0.000000
 | 
					vt 0.723891 0.000000
 | 
				
			||||||
@@ -69,10 +65,6 @@ vt 0.000000 0.000000
 | 
				
			|||||||
vt 1.000000 0.000000
 | 
					vt 1.000000 0.000000
 | 
				
			||||||
vt 1.000000 1.000000
 | 
					vt 1.000000 1.000000
 | 
				
			||||||
vt 0.000000 1.000000
 | 
					vt 0.000000 1.000000
 | 
				
			||||||
vt 0.000000 0.000000
 | 
					 | 
				
			||||||
vt 1.000000 0.000000
 | 
					 | 
				
			||||||
vt 1.000000 1.000000
 | 
					 | 
				
			||||||
vt 0.000000 1.000000
 | 
					 | 
				
			||||||
vn 1.0000 0.0000 0.0000
 | 
					vn 1.0000 0.0000 0.0000
 | 
				
			||||||
vn 0.0000 -1.0000 -0.0000
 | 
					vn 0.0000 -1.0000 -0.0000
 | 
				
			||||||
vn -1.0000 0.0000 0.0000
 | 
					vn -1.0000 0.0000 0.0000
 | 
				
			||||||
@@ -106,7 +98,5 @@ f 7/26/8 6/38/8 19/19/8
 | 
				
			|||||||
f 19/19/6 6/38/6 5/20/6
 | 
					f 19/19/6 6/38/6 5/20/6
 | 
				
			||||||
f 15/22/6 10/39/6 9/23/6
 | 
					f 15/22/6 10/39/6 9/23/6
 | 
				
			||||||
f 8/25/7 17/40/7 16/24/7
 | 
					f 8/25/7 17/40/7 16/24/7
 | 
				
			||||||
g Cube_Cube_LEDs_Cube_Cube_LEDs_leds_off
 | 
					g Cube_Cube_LEDs_Cube_Cube_LEDs_base_led_marquee_leds_off.png
 | 
				
			||||||
f 1/41/6 2/42/6 3/43/6 4/44/6
 | 
					f 1/41/6 2/42/6 3/43/6 4/44/6
 | 
				
			||||||
g Cube_Cube_LEDs_Cube_Cube_LEDs_leds_on
 | 
					 | 
				
			||||||
f 21/45/6 22/46/6 23/47/6 24/48/6
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
| 
		 Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 208 B  | 
| 
		 Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 89 B  | 
| 
		 Before Width: | Height: | Size: 495 B After Width: | Height: | Size: 94 B  | 
| 
		 Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 98 B  | 
| 
		 Before Width: | Height: | Size: 493 B After Width: | Height: | Size: 92 B  | 
| 
		 Before Width: | Height: | Size: 437 B After Width: | Height: | Size: 86 B  | 
| 
		 Before Width: | Height: | Size: 449 B After Width: | Height: | Size: 90 B  | 
| 
		 Before Width: | Height: | Size: 451 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 298 B After Width: | Height: | Size: 89 B  | 
| 
		 Before Width: | Height: | Size: 420 B After Width: | Height: | Size: 85 B  | 
| 
		 Before Width: | Height: | Size: 594 B After Width: | Height: | Size: 91 B  | 
| 
		 Before Width: | Height: | Size: 424 B After Width: | Height: | Size: 82 B  | 
| 
		 Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 85 B  | 
| 
		 Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 87 B  | 
| 
		 Before Width: | Height: | Size: 492 B After Width: | Height: | Size: 91 B  | 
| 
		 Before Width: | Height: | Size: 441 B After Width: | Height: | Size: 84 B  | 
| 
		 Before Width: | Height: | Size: 450 B After Width: | Height: | Size: 89 B  | 
| 
		 Before Width: | Height: | Size: 454 B After Width: | Height: | Size: 89 B  | 
| 
		 Before Width: | Height: | Size: 416 B After Width: | Height: | Size: 81 B  | 
| 
		 Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 87 B  | 
| 
		 Before Width: | Height: | Size: 486 B After Width: | Height: | Size: 93 B  | 
| 
		 Before Width: | Height: | Size: 473 B After Width: | Height: | Size: 93 B  | 
| 
		 Before Width: | Height: | Size: 344 B After Width: | Height: | Size: 86 B  | 
| 
		 Before Width: | Height: | Size: 453 B After Width: | Height: | Size: 86 B  | 
| 
		 Before Width: | Height: | Size: 445 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 371 B After Width: | Height: | Size: 79 B  | 
| 
		 Before Width: | Height: | Size: 447 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 81 B  | 
| 
		 Before Width: | Height: | Size: 568 B After Width: | Height: | Size: 93 B  | 
| 
		 Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 94 B  | 
| 
		 Before Width: | Height: | Size: 338 B After Width: | Height: | Size: 89 B  | 
| 
		 Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 76 B  | 
| 
		 Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 79 B  | 
| 
		 Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 78 B  | 
| 
		 Before Width: | Height: | Size: 274 B After Width: | Height: | Size: 78 B  | 
| 
		 Before Width: | Height: | Size: 276 B After Width: | Height: | Size: 83 B  | 
| 
		 Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 84 B  | 
| 
		 Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 83 B  | 
| 
		 Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 81 B  | 
| 
		 Before Width: | Height: | Size: 451 B After Width: | Height: | Size: 84 B  | 
| 
		 Before Width: | Height: | Size: 272 B After Width: | Height: | Size: 83 B  | 
| 
		 Before Width: | Height: | Size: 306 B After Width: | Height: | Size: 84 B  | 
| 
		 Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 84 B  | 
| 
		 Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 81 B  | 
| 
		 Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 84 B  | 
| 
		 Before Width: | Height: | Size: 268 B After Width: | Height: | Size: 75 B  | 
| 
		 Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 95 B  | 
| 
		 Before Width: | Height: | Size: 318 B After Width: | Height: | Size: 92 B  | 
| 
		 Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 323 B After Width: | Height: | Size: 91 B  | 
| 
		 Before Width: | Height: | Size: 316 B After Width: | Height: | Size: 90 B  | 
| 
		 Before Width: | Height: | Size: 359 B After Width: | Height: | Size: 96 B  | 
| 
		 Before Width: | Height: | Size: 352 B After Width: | Height: | Size: 95 B  | 
| 
		 Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 83 B  | 
| 
		 Before Width: | Height: | Size: 325 B After Width: | Height: | Size: 95 B  | 
| 
		 Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 102 B  | 
| 
		 Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 99 B  | 
| 
		 Before Width: | Height: | Size: 494 B After Width: | Height: | Size: 102 B  | 
| 
		 Before Width: | Height: | Size: 518 B After Width: | Height: | Size: 105 B  | 
| 
		 Before Width: | Height: | Size: 500 B After Width: | Height: | Size: 101 B  | 
| 
		 Before Width: | Height: | Size: 96 B After Width: | Height: | Size: 71 B  | 
| 
		 Before Width: | Height: | Size: 336 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 367 B After Width: | Height: | Size: 95 B  | 
| 
		 Before Width: | Height: | Size: 399 B After Width: | Height: | Size: 102 B  | 
| 
		 Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 332 B After Width: | Height: | Size: 91 B  | 
| 
		 Before Width: | Height: | Size: 266 B After Width: | Height: | Size: 82 B  | 
| 
		 Before Width: | Height: | Size: 396 B After Width: | Height: | Size: 97 B  | 
| 
		 Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 77 B  | 
| 
		 Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 101 B  | 
| 
		 Before Width: | Height: | Size: 363 B After Width: | Height: | Size: 93 B  | 
| 
		 Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 83 B  | 
| 
		 Before Width: | Height: | Size: 230 B After Width: | Height: | Size: 81 B  | 
| 
		 Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 77 B  | 
| 
		 Before Width: | Height: | Size: 461 B After Width: | Height: | Size: 101 B  | 
| 
		 Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 79 B  | 
| 
		 Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 88 B  | 
| 
		 Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 91 B  | 
| 
		 Before Width: | Height: | Size: 319 B After Width: | Height: | Size: 90 B  | 
| 
		 Before Width: | Height: | Size: 291 B After Width: | Height: | Size: 90 B  | 
| 
		 Before Width: | Height: | Size: 250 B After Width: | Height: | Size: 82 B  | 
| 
		 Before Width: | Height: | Size: 307 B After Width: | Height: | Size: 85 B  | 
| 
		 Before Width: | Height: | Size: 343 B After Width: | Height: | Size: 85 B  | 
| 
		 Before Width: | Height: | Size: 216 B After Width: | Height: | Size: 76 B  | 
| 
		 Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 78 B  | 
| 
		 Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 90 B  | 
| 
		 Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 96 B  | 
| 
		 Before Width: | Height: | Size: 317 B After Width: | Height: | Size: 83 B  | 
| 
		 Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 106 B  | 
| 
		 Before Width: | Height: | Size: 435 B After Width: | Height: | Size: 102 B  | 
| 
		 Before Width: | Height: | Size: 478 B After Width: | Height: | Size: 103 B  | 
| 
		 Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 97 B  | 
| 
		 Before Width: | Height: | Size: 408 B After Width: | Height: | Size: 99 B  | 
| 
		 Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 100 B  | 
| 
		 Before Width: | Height: | Size: 426 B After Width: | Height: | Size: 99 B  | 
| 
		 Before Width: | Height: | Size: 413 B After Width: | Height: | Size: 98 B  |