Add Dean's changes manually; fix image directory

pull/1/head
firealarmss 11 months ago
parent b325694590
commit 3c60a1ab1a

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="220" Height="100" Background="#FF0B004B">
<!-- Border wraps the entire Grid -->
<Border BorderBrush="Gray" BorderThickness="1" CornerRadius="0">
<Border BorderBrush="Gray" BorderThickness="1,1,1,1" CornerRadius="0">
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="41"/>
@ -28,7 +28,7 @@
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFE3E3E3" Offset="0.517"/>
<GradientStop Color="Gainsboro" Offset="0.517"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
@ -88,7 +88,7 @@
</Style>
</Button.Resources>
<Image Source="pack://application:,,,/WhackerLinkConsoleV2;component/Assets/pageselect.png" Width="39" Height="39"/>
<Image Source="pack://application:,,,/WhackerLinkConsoleV2;component/Assets/pageselect.png" Width="39" Height="39" Margin="1.5,2,0,0"/>
</Button>
<Button Width="40" Height="40" x:Name="ChannelMarkerBtn" Click="ChannelMarkerBtn_Click" BorderThickness="0,0,0,0" Margin="5,0,0,0">
<Button.Resources>
@ -97,17 +97,17 @@
</Style>
</Button.Resources>
<Image Source="pack://application:,,,/WhackerLinkConsoleV2;component/Assets/channelmarker.png" Width="36" Height="36"/>
<Image Source="pack://application:,,,/WhackerLinkConsoleV2;component/Assets/channelmarker.png" Width="36" Height="40"/>
</Button>
</StackPanel>
<Button Background= "lightgray" x:Name="PttButton" Click="PTTButton_Click" HorizontalAlignment="Left" Width="42" Margin="41,1,0,4" Grid.ColumnSpan="2" BorderThickness="1,1,1,1" BorderBrush="#FFC1C1C1" UseLayoutRounding="False" Grid.RowSpan="2">
<Button x:Name="PttButton" Click="PTTButton_Click" HorizontalAlignment="Left" Width="42" Margin="41,1,0,4" Grid.ColumnSpan="2" BorderThickness="0,0,0,0" BorderBrush="#FFC1C1C1" UseLayoutRounding="False" Grid.RowSpan="2" Background="#FFEEA400">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
</Style>
</Button.Resources>
<Image Source="/Assets/instantptt.png" Width="39" Height="40" Stretch="Fill"/>
<Image Source="/Assets/instantptt.png" Width="39" Height="40" Stretch="Fill" Margin="0,0,0,1"/>
</Button>
</Grid>
</Border>

@ -166,7 +166,7 @@ namespace WhackerLinkConsoleV2.Controls
};
grayGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFF0F0F0"), 0.485));
grayGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFE3E3E3"), 0.517));
grayGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFDCDCDC"), 0.517));
redGradient = new LinearGradientBrush
{
@ -174,7 +174,7 @@ namespace WhackerLinkConsoleV2.Controls
EndPoint = new Point(0.5, 1)
};
redGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFFE0000"), 0.485));
redGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFFF0000"), 0.485));
redGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFD50000"), 0.517));
orangeGradient = new LinearGradientBrush
@ -183,8 +183,8 @@ namespace WhackerLinkConsoleV2.Controls
EndPoint = new Point(0.5, 1)
};
orangeGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFFFD200"), 0.485));
orangeGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFE2BA00"), 0.517));
orangeGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFFFAF00"), 0.485));
orangeGradient.GradientStops.Add(new GradientStop((Color)ColorConverter.ConvertFromString("#FFEEA400"), 0.517));
PttButton.Background = grayGradient;
PageSelectButton.Background = grayGradient;

@ -4,15 +4,26 @@
xmlns:local="clr-namespace:WhackerLinkConsoleV2.Controls"
Title="WhackerLinkConsoleV2" Height="600" Width="1000" Background="#FFF2F2F2">
<Grid Background="#FFF2F2F2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="497*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="52" />
<RowDefinition/>
</Grid.RowDefinitions>
<Border BorderBrush="#FFDADADA" BorderThickness="1" Grid.Row="1" Background="#FFF2F2F2"/>
<Border BorderBrush="#FFB7B7B7" BorderThickness="1" Grid.Row="1" Grid.ColumnSpan="2">
<Border.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White"/>
<GradientStop Color="#FFDFDFDF" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
</Border>
<Menu VerticalAlignment="Center" Height="25" Background="White">
<Menu VerticalAlignment="Center" Height="25" Background="White" Grid.ColumnSpan="2">
<MenuItem Header="File">
<MenuItem Header="Open Codeplug" Click="OpenCodeplug_Click"/>
</MenuItem>
@ -31,11 +42,11 @@
</MenuItem>
</Menu>
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Grid.Row="2">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" Grid.Row="2" Grid.ColumnSpan="2">
<Canvas x:Name="ChannelsCanvas" Background="#FFF2F2F2" VerticalAlignment="Top"/>
</ScrollViewer>
<Button Content="1" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="254,0,0,0" VerticalAlignment="Center" Height="46" Width="45" x:Name="btnAlert1" Click="btnAlert1_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button Content="1" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="369,0,0,0" VerticalAlignment="Center" Height="46" Width="45" x:Name="btnAlert1" Click="btnAlert1_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
@ -44,14 +55,51 @@
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFE3E3E3" Offset="0.517"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Height="26" Grid.Row="1" VerticalAlignment="Center" Width="160" Source="/whackerlink-logo.png" Margin="6,0,0,0" Stretch="Fill"/>
<Image HorizontalAlignment="Left" Margin="259,3,0,3" Grid.Row="1" Width="37" Source="/alerttone.png" IsHitTestVisible="False" RenderTransformOrigin="0.5,0.598"/>
<Button Content="2" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="301,0,0,0" VerticalAlignment="Center" Height="46" Width="45" x:Name="btnAlert2" Click="btnAlert2_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Image HorizontalAlignment="Left" Height="50" Grid.Row="1" VerticalAlignment="Center" Width="231" Source="/Assets/WhackerLinkLogoV4.png" Stretch="UniformToFill" Margin="5,0,0,0" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform AngleY="-0.164"/>
<RotateTransform/>
<TranslateTransform Y="-0.247"/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<Image HorizontalAlignment="Left" Margin="374,3,0,3" Grid.Row="1" Width="37" Source="/Assets/alerttone2.png" IsHitTestVisible="False" RenderTransformOrigin="0.5,0.598"/>
<Button Content="2" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="416,0,0,0" VerticalAlignment="Center" Height="46" Width="45" x:Name="btnAlert2" Click="btnAlert2_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
</Style>
</Button.Resources>
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Margin="421,3,0,3" Grid.Row="1" Width="37" Source="/Assets/alerttone2.png" IsHitTestVisible="False" RenderTransformOrigin="0.5,0.598"/>
<Button Content="3" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="463,0,0,0" VerticalAlignment="Center" x:Name="btnAlert3" Height="46" Width="45" Click="btnAlert3_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
</Style>
</Button.Resources>
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Margin="468,3,0,3" Grid.Row="1" Width="37" Source="/Assets/alerttone2.png" IsHitTestVisible="False"/>
<Button VerticalContentAlignment="Bottom" HorizontalAlignment="Left" x:Name="btnGlobalPtt" VerticalAlignment="Center" Height="46" Width="82" Click="btnGlobalPtt_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial" Margin="285,0,0,0">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
@ -60,12 +108,34 @@
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFE3E3E3" Offset="0.517"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Margin="306,2,0,5" Width="62" Source="/Assets/instantptt.png" IsHitTestVisible="False" Grid.Row="1" >
<Image.OpacityMask>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</Image.OpacityMask>
</Image>
<Button Content="" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="602,0,0,0" VerticalAlignment="Center" Height="46" Width="45" Click="ClearEmergency_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
</Style>
</Button.Resources>
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Margin="306,3,0,3" Grid.Row="1" Width="37" Source="/alerttone.png" IsHitTestVisible="False" RenderTransformOrigin="0.5,0.598"/>
<Button Content="3" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="348,0,0,0" VerticalAlignment="Center" x:Name="btnAlert3" Height="46" Width="45" Click="btnAlert3_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Image HorizontalAlignment="Left" Margin="607,3,0,3" Grid.Row="1" Width="37" Source="/Assets/clearemerg.png" IsHitTestVisible="False"/>
<Button Content="" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="238,0,0,0" VerticalAlignment="Center" Height="46" Width="45" x:Name="OpenCodeplug_Click2" Click="OpenCodeplug_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
@ -74,12 +144,12 @@
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFE3E3E3" Offset="0.517"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Margin="353,3,0,3" Grid.Row="1" Width="37" Source="/alerttone.png" IsHitTestVisible="False"/>
<Button VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="170,0,0,0" x:Name="btnGlobalPtt" VerticalAlignment="Center" Height="46" Width="82" Click="btnGlobalPtt_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Image HorizontalAlignment="Left" Margin="240,3,0,3" Grid.Row="1" Width="41" Source="pack://application:,,,/WhackerLinkConsoleV2;component/Assets/config2.png" IsHitTestVisible="False" RenderTransformOrigin="0.5,0.598"/>
<Button Content="" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="510,0,0,0" VerticalAlignment="Center" Height="46" Width="44" Click="P25Page_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
@ -88,12 +158,12 @@
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFE3E3E3" Offset="0.517"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Margin="188,3,0,4" Width="63" Source="/Assets/instantptt.png" IsHitTestVisible="False" Grid.Row="1" />
<Button Content="" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="395,0,0,0" VerticalAlignment="Center" Height="46" Width="45" Click="ClearEmergency_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Image HorizontalAlignment="Left" Margin="514,3,0,3" Grid.Row="1" Width="38" Source="/Assets/page.png" IsHitTestVisible="False"/>
<Button Content="" VerticalContentAlignment="Bottom" HorizontalAlignment="Left" Margin="556,0,0,0" VerticalAlignment="Center" Height="46" Width="44" Click="AudioSettings_Click" BorderBrush="#FFC1C1C1" BorderThickness="1,1,1,1" Grid.Row="1" FontSize="10" FontFamily="Arial">
<Button.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
@ -102,10 +172,10 @@
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFF0F0F0" Offset="0.485"/>
<GradientStop Color="#FFE3E3E3" Offset="0.517"/>
<GradientStop Color="#FFDBDBDB" Offset="0.517"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Image HorizontalAlignment="Left" Margin="400,3,0,3" Grid.Row="1" Width="37" Source="/clearemerg.png" IsHitTestVisible="False"/>
<Image HorizontalAlignment="Left" Margin="557,3,0,3" Grid.Row="1" Width="41" Source="/Assets/audio.png" IsHitTestVisible="False"/>
</Grid>
</Window>

@ -386,7 +386,8 @@ namespace WhackerLinkConsoleV2
object voicePaket = new
{
type = PacketType.AUDIO_DATA,
data = new {
data = new
{
Data = e.Buffer,
VoiceChannel = new VoiceChannel
{
@ -815,7 +816,8 @@ namespace WhackerLinkConsoleV2
if (channel.PttState && response.Status == (int)ResponseType.GRANT && response.Channel != null && response.SrcId == system.Rid && response.DstId == cpgChannel.Tgid)
{
channel.VoiceChannel = response.Channel;
} else if (response.Status == (int)ResponseType.GRANT && response.SrcId != system.Rid && response.DstId == cpgChannel.Tgid)
}
else if (response.Status == (int)ResponseType.GRANT && response.SrcId != system.Rid && response.DstId == cpgChannel.Tgid)
{
channel.VoiceChannel = response.Channel;
channel.LastSrcId = "Last SRC: " + response.SrcId;
@ -824,7 +826,8 @@ namespace WhackerLinkConsoleV2
channel.Background = (Brush)new BrushConverter().ConvertFrom("#FF00BC48");
channel.IsReceiving = true;
});
} else if ((channel.HoldState || channel.PageState) && response.Status == (int)ResponseType.GRANT && response.Channel != null && response.SrcId == system.Rid && response.DstId == cpgChannel.Tgid)
}
else if ((channel.HoldState || channel.PageState) && response.Status == (int)ResponseType.GRANT && response.Channel != null && response.SrcId == system.Rid && response.DstId == cpgChannel.Tgid)
{
channel.VoiceChannel = response.Channel;
}
@ -1211,7 +1214,8 @@ namespace WhackerLinkConsoleV2
channel.PttState = true;
handler.SendMessage(request.GetData());
} else
}
else
{
Dispatcher.Invoke(() =>
{

@ -11,17 +11,37 @@
<ItemGroup>
<None Remove="alerttone.png" />
<None Remove="Assets\alerttone.png" />
<None Remove="Assets\alerttone2.png" />
<None Remove="Assets\audio.png" />
<None Remove="Assets\channelmarker.png" />
<None Remove="Assets\clearemerg.png" />
<None Remove="Assets\config.png" />
<None Remove="Assets\config2.png" />
<None Remove="Assets\connection.png" />
<None Remove="Assets\instantptt.png" />
<None Remove="Assets\page.png" />
<None Remove="Assets\pageselect.png" />
<None Remove="Assets\pttselect.png" />
<None Remove="Assets\whackerlink-logo.png" />
<None Remove="Assets\WhackerLinkLogoV2.png" />
<None Remove="Assets\WhackerLinkLogoV4.png" />
<None Remove="clearemerg.png" />
<None Remove="connection.png" />
<None Remove="page.png" />
<None Remove="whackerlink-logo.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\alerttone.png" />
<Resource Include="Assets\alerttone2.png" />
<Resource Include="Assets\audio.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Assets\config.png" />
</ItemGroup>
<ItemGroup>
@ -34,18 +54,19 @@
</ItemGroup>
<ItemGroup>
<Resource Include="alerttone.png" />
<Resource Include="Assets\channelmarker.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="Assets\clearemerg.png" />
<Resource Include="Assets\config2.png" />
<Resource Include="Assets\connection.png" />
<Resource Include="Assets\instantptt.png" />
<Resource Include="Assets\page.png" />
<Resource Include="Assets\pageselect.png" />
<Resource Include="Assets\pttselect.png" />
<Resource Include="clearemerg.png" />
<Resource Include="connection.png" />
<Resource Include="page.png" />
<Resource Include="whackerlink-logo.png" />
<Resource Include="Assets\whackerlink-logo.png" />
<Resource Include="Assets\WhackerLinkLogoV2.png" />
<Resource Include="Assets\WhackerLinkLogoV4.png" />
</ItemGroup>
<ItemGroup>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Loading…
Cancel
Save

Powered by TurnKey Linux.