diff --git a/Configuration/GlobalAssemblyInfo.cs b/Configuration/GlobalAssemblyInfo.cs
index d90aa57d0..1e5df7bd4 100644
--- a/Configuration/GlobalAssemblyInfo.cs
+++ b/Configuration/GlobalAssemblyInfo.cs
@@ -15,7 +15,7 @@ internal static class RevisionClass
public const string Major = "3";
public const string Minor = "7";
public const string Build = "1";
- public const string Revision = "2783";
+ public const string Revision = "2784";
public const string MainVersion = Major + "." + Minor;
public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;
diff --git a/Configuration/Version.defs b/Configuration/Version.defs
index 3e6c8120e..807571a3a 100644
--- a/Configuration/Version.defs
+++ b/Configuration/Version.defs
@@ -1,4 +1,4 @@
-%MINOR%=7
-%REVISION%=2783
%COREVERSION%=1
+%REVISION%=2784
+%MINOR%=7
%MAJOR%=3
diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html
index 328a31741..27047e3a1 100644
--- a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html
+++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html
@@ -2,6 +2,7 @@
+
@@ -36,6 +37,8 @@
Возвращает, совпадают ли массивы
function BinarySearch<T>(Self: array of T; x: T): integer;
function Cartesian<T>(Self: array of T; n: integer): sequence of array of T;
+function Combinations<T>(Self: array of T; m: integer): sequence of array of T;
function ConvertAll<T, T1>(Self: array of T; converter: T->T1): array of T1;
@@ -107,7 +110,9 @@
function Min(Self: array of real): real;
function Permutations<T>(Self: array of T): sequence of array of T;
-function Permutations<T>(Self: array of T; m: integer): sequence of array of T;
+function RandomElement<T>(Self: array of T): T;
function Shuffle<T>(Self: array of T): array of T;
diff --git a/Release/pabcversion.txt b/Release/pabcversion.txt
index 4b9b9e4bf..d8ecb9777 100644
--- a/Release/pabcversion.txt
+++ b/Release/pabcversion.txt
@@ -1 +1 @@
-3.7.1.2783
+3.7.1.2784
diff --git a/ReleaseGenerators/PascalABCNET_version.nsh b/ReleaseGenerators/PascalABCNET_version.nsh
index 36f98fc54..a47b64893 100644
--- a/ReleaseGenerators/PascalABCNET_version.nsh
+++ b/ReleaseGenerators/PascalABCNET_version.nsh
@@ -1 +1 @@
-!define VERSION '3.7.1.2783'
+!define VERSION '3.7.1.2784'
diff --git a/TestSuite/CompilationSamples/PABCSystem.pas b/TestSuite/CompilationSamples/PABCSystem.pas
index 9a9da0a12..9ced3bea4 100644
--- a/TestSuite/CompilationSamples/PABCSystem.pas
+++ b/TestSuite/CompilationSamples/PABCSystem.pas
@@ -7222,7 +7222,9 @@ end;
function Eof(f: Text): boolean;
begin
- if f.sr <> nil then
+ if f = input then
+ Result := Eof
+ else if f.sr <> nil then
Result := f.sr.EndOfStream
else if f.sw <> nil then
raise new IOException(GetTranslation(EOF_FOR_TEXT_WRITEOPENED))
@@ -7231,7 +7233,9 @@ end;
function Eoln(f: Text): boolean;
begin
- if f.sr <> nil then
+ if f = input then
+ Result := Eoln
+ else if f.sr <> nil then
Result := f.sr.EndOfStream or (f.sr.Peek = 13) or (f.sr.Peek = 10)
else if f.sw <> nil then
raise new IOException(GetTranslation(EOLN_FOR_TEXT_WRITEOPENED))
@@ -7240,6 +7244,11 @@ end;
function SeekEof(f: Text): boolean;
begin
+ if f = input then
+ begin
+ Result := SeekEof;
+ exit;
+ end;
if f.sw <> nil then
raise new IOException(GetTranslation(SEEKEOF_FOR_TEXT_WRITEOPENED));
if f.sr = nil then
@@ -7257,6 +7266,11 @@ end;
function SeekEoln(f: Text): boolean;
begin
+ if f = input then
+ begin
+ Result := SeekEoln;
+ exit;
+ end;
if f.sw <> nil then
raise new IOException(GetTranslation(SEEKEOLN_FOR_TEXT_WRITEOPENED));
if f.sr = nil then
diff --git a/bin/PascalABCNET.chm b/bin/PascalABCNET.chm
index 3f7a55629..12698fe4a 100644
Binary files a/bin/PascalABCNET.chm and b/bin/PascalABCNET.chm differ