更新代码

master
bettleChen 11 months ago
parent 1125aa74ee
commit e2cb20c6aa

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

@ -0,0 +1 @@
############### 请在右侧图形化界面,全屏展示界面,完成本关卡 ###################

@ -0,0 +1,6 @@
xrandr --addmode VNC-0 "1920x1080"
xrandr --output VNC-0 --mode "1920x1080"
nohup python3 x5/FunctionDisplay_X5.py &
echo "编译成功"
echo "运行成功"
echo "测评成功"

26
text

@ -0,0 +1,26 @@
self.func_input = Entry(bottom_frame, font=self.font_style, width=40)
self.func_input.grid(row=0, column=0, columnspan=6, padx=(15,0), pady=5)
self.add_func_button = Button(bottom_frame, text="用户命名并新增基本函数", command=self.add_function)
self.add_func_button.grid(row=0, column=6, columnspan=2,padx=10, pady=15, sticky="ne")
Label(bottom_frame, text="x步长", font=("Lucida Grande", 18)).place(x=15,y=80)
self.x_step = Entry(bottom_frame, font=self.font_style, width=10)
self.x_step.place(x=135, y=70, width=215,height=52)
Label(bottom_frame, text="x个数", font=("Lucida Grande", 18)).place(x=15,y=155)
self.x_count = Entry(bottom_frame, font=self.font_style, width=10)
self.x_count.place(x=135, y=150, width=215,height=52)
Label(bottom_frame, text="坐标轴", font=("Lucida Grande", 20)).grid(row=2, column=4,padx=(150,0))
self.quadrant = IntVar()
self.quadrant.set(4)
Radiobutton(bottom_frame, text="四象限", command=self.update_quadrant,
value=4, variable=self.quadrant).grid(row=1, column=5, sticky="sw",padx=(0,135))
Radiobutton(bottom_frame, text="一象限", command=self.update_quadrant,
value=1, variable=self.quadrant).grid(row=3, column=5, sticky="nw",padx=(0,135))
Label(bottom_frame, text="x放大倍数", font=("Lucida Grande", 18)).place(x=750,y=80)
self.x_scale = Entry(bottom_frame, font=self.font_style, width=10)
self.x_scale.grid(row=1, column=6, padx=(70,0), sticky="se")
Label(bottom_frame, text="y放大倍数", font=("Lucida Grande", 18)).place(x=750,y=160)
self.y_scale = Entry(bottom_frame, font=self.font_style, width=10)
self.y_scale.grid(row=3, column=6, sticky="ne")
Button(bottom_frame, text="输出", command=self.print_function, width=5) \
.grid(row=1, rowspan=3, column=8, padx=(30,0),sticky="w")

@ -1,5 +1,5 @@
from time import sleep
from ttkbootstrap import *
from tkinter import *
import tkinter.font as tkFont
from tkinter import messagebox
@ -12,7 +12,9 @@ from numpy import arange
from sympy import symbols, lambdify
from functionUtil import FunctionUtil
import math
from PIL import ImageTk, Image
import sys
# 在画布中央绘制文本
def center_text(canvas, text, font):
@ -26,16 +28,20 @@ class Graph(Canvas):
"""
绘制函数图形
"""
def __init__(self, master=None, **kwargs):
super().__init__(master, **kwargs)
self.width = int(self.cget('width'))
self.height = int(self.cget('height'))
self.origin = (self.width / 2, self.height / 2)
self.config(bg="white")
self.bili_x = 20
self.bili_y = 20
self.draw_axis()
self.draw_scale()
self.fig = FigureCanvasTkAgg()
self.y_scale = 1.0
def draw_axis(self):
"""
@ -77,6 +83,7 @@ class Graph(Canvas):
self.draw_axis()
self.draw_scale()
def draw_graph_3d(self, func, draw_precision=0.1, count=1000, bili_x=20, bili_y=40, ):
self.fig.get_tk_widget().destroy()
self.delete("all")
@ -93,16 +100,20 @@ class Graph(Canvas):
X, Y = np.meshgrid(X, Y)
Z = expr(X, Y)
# 创建一个 Figure 对象
fig = Figure(figsize=(5.5, 6), dpi=100)
fig = Figure(figsize=(7, 5.5), dpi=120)
# 在 Figure 上创建一个 3D 子图
ax = fig.add_subplot(111, projection='3d')
ax.auto_scale_xyz(X, Y, Z)
# 绘制三维图形
ax.plot_surface(X, Y, Z, cmap='viridis')
self.fig = FigureCanvasTkAgg(fig, master=self)
self.fig.draw()
self.fig.get_tk_widget().pack(fill=BOTH, ipadx=0, ipady=0, pady=0, padx=0)
self.fig.get_tk_widget().pack(fill=BOTH, ipadx=0, ipady=0, pady=0, padx=0, expand=True)
def draw_graph(self, func, draw_precision=0.1, count=1000, bili_x=20, bili_y=40, c='blue'):
def draw_graph_2d(self, func, draw_precision=0.1, count=1000, bili_x=1, bili_y=1, c='blue'):
'xmin,xmax 自变量的取值范围; c 图像颜色'
'x0,y0 原点坐标 w,h 横纵轴半长 draw_precision 步进'
self.fig.get_tk_widget().destroy()
@ -142,14 +153,14 @@ class Graph(Canvas):
class ExpressionCanvas(Canvas):
def __init__(self, master, *args, **kwargs):
super().__init__(master, *args, **kwargs)
self.node_width = 60
self.node_height = 30
self.x_spacing = 10
self.node_width = 100
self.node_height = 40
self.x_spacing = 15
self.y_spacing = 70
self.level = {}
def add_node(self, text, x, y, parent=None):
node_width = len(text) * 5 + 20
node_width = len(text) * 15 + 20
if node_width < 40:
node_width = 50
# 创建节点
@ -178,7 +189,7 @@ class ExpressionCanvas(Canvas):
self.level[coords[1]].append(coords[2])
else:
self.level[coords[1]] = [coords[2]]
text_id = self.create_text(x + 5, y + self.node_height // 2, text=text, anchor="center")
text_id = self.create_text(x + 5, y + self.node_height // 2, text=text, anchor="center", font=("", 15))
sleep(0.2)
self.update()
# 绘制父节点和当前节点的连线
@ -208,14 +219,17 @@ class ExpressionCanvas(Canvas):
return node
class FunctionDisplay(Frame):
def __init__(self, master, attr):
super().__init__(master)
self.attr = attr
class FunctionDisplay(Canvas):
def __init__(self, master, *args, **kwargs):
super().__init__(master, *args, **kwargs)
self.font_style = tkFont.Font(family="Lucida Grande", size=30)
self.functions = FunctionUtil()
self.width = int(self.cget("width"))
self.height = int(self.cget("height"))
self.background_img = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/背景@3x.jpg").resize((self.width, self.height)))
self.create_image(0, 0, image=self.background_img, anchor=NW)
self.master = master
self.create_window()
self.init_window()
self.load_user_function()
def add_function(self):
@ -286,9 +300,10 @@ class FunctionDisplay(Frame):
def load_user_function(self):
self.user_function_canvas.delete(ALL)
self.user_function_canvas.create_text(20 + 90, 35, text='可识别基本函数', fill='red', font=("Purisa", 20, "bold"))
self.user_function_canvas.create_text(20 + 90, 35, text='可识别基本函数', fill='red',
font=("Purisa", 20, "bold"))
num = 2
self.user_function_canvas.create_text(0, 70, anchor="nw", text="函数", font=("", 15))
self.user_function_canvas.create_text(0, 70, anchor="nw", text="函数", font=("", 15))
self.user_function_canvas.create_text(100, 70, anchor="nw", text="函数体", font=("", 15))
for function, function_body in self.functions.data.items():
self.user_function_canvas.create_text(0, 20 * num + 50, anchor="nw", text=function, font=("", 15))
@ -298,86 +313,107 @@ class FunctionDisplay(Frame):
self.user_function_canvas.configure(scrollregion=self.user_function_canvas.bbox("all"))
def create_form(self):
bottom_frame = Frame(self.master, width=self.attr["width"], height=self.attr["height"] * 0.3)
self.func_input = Entry(bottom_frame, font=self.font_style, width=40)
self.func_input.grid(row=0, column=0, columnspan=4, padx=30)
self.add_func_button = Button(bottom_frame, text="用户命名并新增基本函数", command=self.add_function)
self.add_func_button.grid(row=0, column=4, padx=10)
Label(bottom_frame, text="x步长", font=("Lucida Grande", 20)).grid(row=1, column=0, padx=30)
self.x_step = Entry(bottom_frame, font=self.font_style, width=10)
self.x_step.grid(row=1, column=1, padx=10, pady=10)
Label(bottom_frame, text="x个数", font=("Lucida Grande", 20)).grid(row=1, column=2, padx=30)
self.x_count = Entry(bottom_frame, font=self.font_style, width=10)
self.x_count.grid(row=1, column=3, padx=10, pady=10)
Label(bottom_frame, text="坐标轴", font=("Lucida Grande", 20)).grid(row=2, column=0, padx=30)
bottom_frame = Canvas(self, width=self.width, height=self.height * 0.3, highlightthickness=0)
self.back_image = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/下部背景@3x.png").resize((self.width, int(self.height * 0.3))))
bottom_frame.create_image(0, 0, image=self.back_image, anchor=NW)
label_width, entry_width, label_margin_left, margin_left, height, margin_top = 100, 215, 120 + 50, 120, 42, 20
self.func_input = Entry(bottom_frame, font=self.font_style)
self.func_input.place(x=margin_left, y=margin_top, anchor=NW, width=1000, height=height)
self.add_func_image = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/用户命名并新增基本函数@3x.png").resize((150, 42)))
self.add_func_button = Button(bottom_frame, image=self.add_func_image, bd=0, relief="solid", bg="#f7f7f7",
highlightthickness=0, command=self.add_function)
self.add_func_button.place(x=1140, y=20, anchor=NW)
self.label_img = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/文字背景@3x.png").resize((100, 42)))
bottom_frame.create_image(label_margin_left, 112, image=self.label_img)
bottom_frame.create_text(label_margin_left, 112, text="x步长", fill="white", font=("", 20))
self.x_step = Entry(bottom_frame, font=self.font_style)
self.x_step.place(x=margin_left + label_width, y=112 - 21, width=215, height=42)
self.label1_img = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/文字背景@3x.png").resize((100, 42)))
bottom_frame.create_image(label_margin_left, 171, image=self.label1_img)
bottom_frame.create_text(label_margin_left, 170, text="x个数", fill="white", font=("", 20))
self.x_count = Entry(bottom_frame, font=self.font_style)
self.x_count.place(x=margin_left + label_width, y=112 + 39, width=215, height=42)
self.big_label_img = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/文字背景2@3x.png").resize((label_width+5, height * 2 + margin_top)))
bottom_frame.create_image(label_margin_left + label_width + entry_width + 108, 112 + 31, image=self.big_label_img)
bottom_frame.create_text(label_margin_left + label_width + entry_width + 108, 112 + 31, text="坐标轴", fill="white", font=("", 25))
self.quadrant = IntVar()
self.quadrant.set(4)
Radiobutton(bottom_frame, text="四象限", command=self.update_quadrant,
value=4, variable=self.quadrant).grid(row=2, column=1, padx=10, pady=10)
Radiobutton(bottom_frame, text="一象限", command=self.update_quadrant,
value=1, variable=self.quadrant).grid(row=2, column=2, padx=10, pady=10)
Label(bottom_frame, text="x放大倍数", font=("Lucida Grande", 20)).grid(row=3, column=0, padx=30)
self.x_scale = Entry(bottom_frame, font=self.font_style, width=10)
self.x_scale.grid(row=3, column=1, padx=10, pady=10)
Label(bottom_frame, text="y放大倍数", font=("Lucida Grande", 20)).grid(row=3, column=2, padx=30)
self.y_scale = Entry(bottom_frame, font=self.font_style, width=10)
self.y_scale.grid(row=3, column=3, padx=10, pady=10)
Button(bottom_frame, text="输出", command=self.print_function, width=5)\
.grid(row=1, rowspan=3, column=4, sticky="w")
bottom_frame.place(x=0, y=self.attr["height"] * 0.65 + 20)
def create_window(self):
self.axis_canvas = Graph(self.master, width=self.attr["width"] * 0.45, height=self.attr["height"] * 0.65,
bg="#cdcdcd")
self.axis_canvas.place(x=0, y=0)
self.text_canvas = ExpressionCanvas(self.master, width=self.attr["width"] * 0.35,
height=self.attr["height"] * 0.65, bg="#cdcdcd")
self.text_canvas.place(x=int(self.attr["width"] * 0.45), y=0)
user_function = Frame(self.master, width=self.attr["width"] * 0.2, height=self.attr["height"] * 0.65)
user_function.place(x=int(self.attr["width"] * 0.8), y=0)
self.user_function_canvas = Canvas(user_function, width=self.attr["width"] * 0.18,
height=self.attr["height"] * 0.63, background="#cdcdcd")
Radiobutton(bottom_frame, text="四象限", command=self.update_quadrant, font=("", 17),
bg="#b9b9f7",highlightthickness=0, highlightcolor="#aaaaf2",
value=4, variable=self.quadrant).place(x=label_margin_left + label_width * 2 + entry_width +58, y=90,
height=(height * 2 + margin_top) / 2, width=entry_width, anchor=NW)
Radiobutton(bottom_frame, text="一象限", command=self.update_quadrant, font=("", 17), bg="#b9b9f7",
highlightthickness=0, highlightcolor="#aaaaf2",
value=1, variable=self.quadrant).place(x=label_margin_left + label_width * 2 + entry_width +58, y=90 + (height * 2 + margin_top) / 2,
height=(height * 2 + margin_top) / 2, width=entry_width, anchor=NW)
self.x_scale = Entry(bottom_frame, font=self.font_style)
self.x_scale.place(x=margin_left + label_width, y=112 - 21, width=215, height=42)
label_x = label_margin_left + 840
label_y = 112
self.label_img1 = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/文字背景@3x.png").resize((130, 42)))
bottom_frame.create_image(label_x, label_y, image=self.label_img1)
bottom_frame.create_text(label_x, label_y, text="x放大倍数", fill="white", font=("", 20))
entry_x = margin_left + label_width + 855
entry_y = 112 - 21
self.x_scale.place(x=entry_x, y=entry_y, width=215, height=42)
self.y_scale = Entry(bottom_frame, font=self.font_style)
self.y_scale.place(x=margin_left + label_width, y=112 - 21, width=215, height=42)
label_x = label_margin_left + 840
label_y = 170
bottom_frame.create_image(label_x, label_y, image=self.label_img1)
bottom_frame.create_text(label_x, label_y, text="y放大倍数", fill="white", font=("", 20))
entry_x = margin_left + label_width + 855
entry_y = 170 - 21
self.y_scale.place(x=entry_x, y=entry_y, width=215, height=42)
self.print_function_image = ImageTk.PhotoImage(Image.open(sys.path[0]+"/./image/输出-点击@3x.png").resize((100, 42)))
self.print_function_button = Button(bottom_frame, image=self.print_function_image, bd=0, relief="solid", bg="#f7f7f7",
highlightthickness=0, command=self.print_function)
self.print_function_button.place(x=1350, y=95, anchor=NW)
# Button(bottom_frame, text="输出", command=self.print_function, width=5) \
# .place(x=1350, y=95, anchor=NW)
bottom_frame.place(x=0, y=self.height * 0.65 + 40, anchor=NW)
def init_window(self):
self.axis_canvas = Graph(self, width=self.width * 0.45, height=self.height * 0.65,highlightthickness=0)
self.axis_canvas.place(x=0, y=0, anchor=NW)
self.text_canvas = ExpressionCanvas(self, width=self.width * 0.35,
height=self.height * 0.65, bg="white",highlightthickness=0)
self.text_canvas.place(x=int(self.width * 0.45), y=0)
user_function = Frame(self, width=self.width * 0.2, height=self.height * 0.65)
user_function.place(x=int(self.width * 0.8), y=0)
self.user_function_canvas = Canvas(user_function, width=self.width * 0.19,
height=self.height * 0.65, bg="white",highlightthickness=0)
y_scrollbar = Scrollbar(user_function, orient="vertical", command=self.user_function_canvas.yview)
x_scrollbar = Scrollbar(user_function, orient="horizontal", command=self.user_function_canvas.xview)
x_scrollbar.pack(side=BOTTOM, fill=BOTH)
y_scrollbar.pack(side=RIGHT, fill=BOTH)
self.user_function_canvas.pack(side=TOP, fill=BOTH)
self.user_function_canvas.config(yscrollcommand=y_scrollbar.set, xscrollcommand=x_scrollbar.set)
for i in range(1, 200):
self.user_function_canvas.create_text(80, i * 20 + 35, text="fdsaf{}".format(i))
self.user_function_canvas.config(scrollregion=self.user_function_canvas.bbox("all"))
self.create_form()
if __name__ == '__main__':
from pycallgraph2 import PyCallGraph
from pycallgraph2.output import GraphvizOutput
from pycallgraph2 import Config
from pycallgraph2 import GlobbingFilter
root = Window()
root = Tk()
screenwidth = root.winfo_screenwidth()
screenheight = root.winfo_screenheight()
root_attr = {
"width": 1200,
"height": 800,
"width": int(screenwidth * 1),
"height": int(screenheight * 1),
}
alignstr = '%dx%d+%d+%d' % (root_attr['width'], root_attr['height'], (screenwidth - root_attr['width']) / 2,
(screenheight - root_attr['height']) / 2)
root.geometry(alignstr)
root.resizable(width=False, height=False)
output = GraphvizOutput(font_size=30)
output.output_file = "basic.png"
output.group_font_size = 40
config = Config()
config.trace_filter = GlobbingFilter(include=[
'FunctionDisplay.*',
'Graph.*',
'ExpressionCanvas.*',
'FunctionUtil.*'
])
with PyCallGraph(output=output, config=config):
app = FunctionDisplay(root, root_attr)
ttk.Style().configure("TButton", font="-size 18")
ttk.Style().configure("TRadiobutton", font="-size 18")
app = FunctionDisplay(root, width=root_attr["width"], height=root_attr["height"])
app.place(x=0, y=0, anchor=NW)
root.mainloop()

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

@ -0,0 +1 @@
{"xy": "x*y", "sinx": "sin(x)", "cosx": "cos(x)", "y": "sin(x)*cos(x)", "SinPlusCon": "sin(x)+cos(x)", "tanx": "tan(x)"}

@ -0,0 +1,57 @@
import json
import re
class FunctionUtil:
def __init__(self):
self.filename = "./function.json"
self.data = {}
self.load()
def load(self):
"""
加载文件数据
"""
try:
with open(self.filename, 'r', encoding="utf-8") as f:
self.data = json.load(f)
except FileNotFoundError:
pass
def save(self):
"""
将函数保存至json文件当中
"""
with open(self.filename, "w", encoding="utf-8") as f:
json.dump(self.data, f)
def check_function_exit(self, function):
"""
检查用户输入的函数是否包含用户自定义函数
"""
for key in self.data.keys():
if function.find(key) >=0:
return True
return False
def add_function(self, key, value):
"""
添加函数
"""
self.data[key.strip()] = value.strip()
self.save()
def get_function_by_iter(self, key):
result = key
for dict_key in self.data.keys():
if result.find(dict_key) >= 0:
value = result.replace(dict_key, self.data[dict_key])
result = self.replace_values_recursive(value)
return result
def replace_values_recursive(self, value):
for key in self.data:
if key in value:
replacement = self.data[key]
value = value.replace(key, replacement)
return value

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save