@sassoftware/viya-serverjs 0.2.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +6 -6
- package/.dockerignore +2 -2
- package/.env +29 -29
- package/.env.proxy +32 -32
- package/.env.server +30 -30
- package/.eslintignore +3 -3
- package/.eslintrc.json +42 -42
- package/Dockerfile +44 -44
- package/README.md +99 -99
- package/cli.js +9 -9
- package/lib/config.js +16 -16
- package/lib/handlers/appCallback.js +23 -24
- package/lib/handlers/codeAuth.js +17 -18
- package/lib/handlers/decodeJwt.js +3 -3
- package/lib/handlers/favicon.js +22 -25
- package/lib/handlers/getApp.js +20 -21
- package/lib/handlers/getApp2.js +22 -25
- package/lib/handlers/getUser.js +14 -17
- package/lib/handlers/index.js +3 -3
- package/lib/handlers/keepAlive.js +28 -31
- package/lib/handlers/keepAlive2.js +9 -12
- package/lib/handlers/logon.js +12 -15
- package/lib/handlers/logout.js +24 -28
- package/lib/handlers/proxyMapUri.js +6 -11
- package/lib/handlers/proxyOnResponse.js +6 -7
- package/lib/handlers/reactDev.js +22 -25
- package/lib/handlers/setCookies.js +52 -53
- package/lib/iService.js +106 -104
- package/lib/index.js +23 -21
- package/lib/parseDocker.js +3 -3
- package/lib/plugins/SASauth.js +30 -32
- package/lib/plugins/appCookie.js +36 -38
- package/lib/plugins/setContext.js +22 -25
- package/lib/plugins/setDefaultRoutes.js +61 -58
- package/lib/plugins/setupAuth.js +35 -38
- package/lib/plugins/setupUserRoutes.js +16 -16
- package/lib/plugins/token.js +9 -10
- package/lib/schemes/SASTokenScheme.js +24 -27
- package/package.json +85 -79
- package/public/data/Cluster_SDOH1.sas +181 -181
- package/public/data/Cluster_SDOH6.sas +179 -179
- package/public/data/NeuralNetwork_High_med.sas +2408 -2408
- package/public/data/NeuralNetwork_high_med1.sas +2408 -2408
- package/public/data/cars.csv +429 -429
- package/public/data/cmdList.txt +15 -15
- package/public/data/iris.csv +151 -151
- package/public/index.html +355 -360
- package/public/indexProxy.html +351 -351
- package/public/simplesubmit.html +233 -0
- package/server.js +362 -362
- package/src/config.js +90 -90
- package/src/handlers/appCallback.js +40 -40
- package/src/handlers/codeAuth.js +31 -31
- package/src/handlers/decodeJwt.js +10 -10
- package/src/handlers/favicon.js +23 -23
- package/src/handlers/getApp.js +52 -52
- package/src/handlers/getApp2.js +25 -25
- package/src/handlers/getUser.js +20 -20
- package/src/handlers/index.js +36 -36
- package/src/handlers/keepAlive.js +53 -53
- package/src/handlers/keepAlive2.js +12 -12
- package/src/handlers/logon.js +23 -23
- package/src/handlers/logout.js +42 -42
- package/src/handlers/proxyMapUri.js +25 -25
- package/src/handlers/proxyOnResponse.js +11 -11
- package/src/handlers/reactDev.js +29 -29
- package/src/handlers/setCookies.js +81 -79
- package/src/iService.js +346 -347
- package/src/index.js +251 -249
- package/src/parseDocker.js +32 -32
- package/src/plugins/SASauth.js +78 -78
- package/src/plugins/appCookie.js +51 -49
- package/src/plugins/setContext.js +33 -33
- package/src/plugins/setDefaultRoutes.js +256 -253
- package/src/plugins/setupAuth.js +49 -49
- package/src/plugins/setupUserRoutes.js +47 -47
- package/src/plugins/token.js +10 -10
- package/src/schemes/SASTokenScheme.js +43 -43
- package/src/visionIndex.html +23 -23
- package/start.sh +14 -14
- package/tls/viyatls.sh +2 -2
|
@@ -1,182 +1,182 @@
|
|
|
1
|
-
/*--------------------------------------------------
|
|
2
|
-
The options statement below should be placed
|
|
3
|
-
before the data step when submitting this code.
|
|
4
|
-
--------------------------------------------------*/
|
|
5
|
-
/*options VALIDMEMNAME=EXTEND VALIDVARNAME=ANY;*/
|
|
6
|
-
/*------------------------------------------
|
|
7
|
-
Generated SAS Scoring Code
|
|
8
|
-
Date : 02Jul2019:21:19:56
|
|
9
|
-
Locale : en_US
|
|
10
|
-
Model Type : Cluster
|
|
11
|
-
Interval variable: SDOH_PMU(SDOH1 Physically Mentally Unhealthy)
|
|
12
|
-
Interval variable: SDOH_Per_Adults_Bachelors(SDOH2 Education)
|
|
13
|
-
Interval variable: SDOH_Unemployment_Rate(SDOH4 Unemployment Rate)
|
|
14
|
-
Interval variable: SDOH_Median_Household_Income(SDOH3 Median Household Income)
|
|
15
|
-
------------------------------------------*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
length _WARN_ $4;
|
|
19
|
-
label _WARN_ = 'Warnings';
|
|
20
|
-
label _CLUSTER_ID_ = 'Cluster ID';
|
|
21
|
-
label _DISTANCE_ = 'Distance to Centroid';
|
|
22
|
-
|
|
23
|
-
_i_ = 0;
|
|
24
|
-
_j_ = 0;
|
|
25
|
-
_k_ = 0;
|
|
26
|
-
_l_ = 0;
|
|
27
|
-
_dist_ = 0;
|
|
28
|
-
_minDist_ = 0;
|
|
29
|
-
_found_ = 0;
|
|
30
|
-
_unknown_ = 0;
|
|
31
|
-
_unknownflag_ = 0;
|
|
32
|
-
_intMindist2cntr_ = 0;
|
|
33
|
-
_missingflag4Int_ = 0;
|
|
34
|
-
_numberOfIntVars_ = 4;
|
|
35
|
-
_minDistInt_ = 0;
|
|
36
|
-
label _STANDARDIZED_DISTANCE_ = 'Standardized Distance to Centroid';
|
|
37
|
-
|
|
38
|
-
drop _i_;
|
|
39
|
-
drop _j_;
|
|
40
|
-
drop _k_;
|
|
41
|
-
drop _l_;
|
|
42
|
-
drop _dist_;
|
|
43
|
-
drop _minDist_;
|
|
44
|
-
drop _minDistInt_;
|
|
45
|
-
drop _unknown_;
|
|
46
|
-
drop _unknownflag_;
|
|
47
|
-
drop _found_;
|
|
48
|
-
drop _intMindist2cntr_;
|
|
49
|
-
drop _missingflag4Int_;
|
|
50
|
-
drop _numberOfIntVars_;
|
|
51
|
-
drop _minDistInt_;
|
|
52
|
-
|
|
53
|
-
array _intVals_67{4} _temporary_;
|
|
54
|
-
array _intStdVals_67{4} _temporary_;
|
|
55
|
-
array _intVars_67[4] _temporary_;
|
|
56
|
-
_intVars_67[1] =
|
|
57
|
-
SDOH_PMU;
|
|
58
|
-
_intVars_67[2] =
|
|
59
|
-
SDOH_Per_Adults_Bachelors;
|
|
60
|
-
_intVars_67[3] =
|
|
61
|
-
SDOH_Unemployment_Rate;
|
|
62
|
-
_intVars_67[4] =
|
|
63
|
-
SDOH_Median_Household_Income;
|
|
64
|
-
array _cntrcoordsInt_67{4,4} _temporary_ (
|
|
65
|
-
5.6752109618776
|
|
66
|
-
34.574068577069
|
|
67
|
-
5.5249572649573
|
|
68
|
-
65162.262238794
|
|
69
|
-
6.1728412355737
|
|
70
|
-
28.076500921419
|
|
71
|
-
8.4815044247788
|
|
72
|
-
50250.811599193
|
|
73
|
-
5.5563377592335
|
|
74
|
-
27.69585347275
|
|
75
|
-
3.586724137931
|
|
76
|
-
55456.199169472
|
|
77
|
-
7.1425816544567
|
|
78
|
-
23.193113163492
|
|
79
|
-
5.9483653846154
|
|
80
|
-
45013.481439879
|
|
81
|
-
);
|
|
82
|
-
array _stdcntrcoordsInt_67 {4,4} _temporary_ (
|
|
83
|
-
-0.545947986801
|
|
84
|
-
1.2465170251288
|
|
85
|
-
-0.140043320021
|
|
86
|
-
1.2424484776721
|
|
87
|
-
0.080847377302
|
|
88
|
-
-0.09555849286
|
|
89
|
-
1.0754374093924
|
|
90
|
-
-0.456774851619
|
|
91
|
-
-0.695675960102
|
|
92
|
-
-0.17418139437
|
|
93
|
-
-0.936879929639
|
|
94
|
-
0.1364012391051
|
|
95
|
-
1.3022939633885
|
|
96
|
-
-1.104224427884
|
|
97
|
-
0.0340260867236
|
|
98
|
-
-1.053590936451
|
|
99
|
-
);
|
|
100
|
-
array _stdscaleInt_67 {4} _temporary_ (
|
|
101
|
-
0.7939278147152
|
|
102
|
-
4.8414322208822
|
|
103
|
-
2.4324097357342
|
|
104
|
-
8775.4507500947
|
|
105
|
-
);
|
|
106
|
-
array _stdcenterInt_67 {4} _temporary_ (
|
|
107
|
-
6.1086542539869
|
|
108
|
-
28.539140887732
|
|
109
|
-
5.8656
|
|
110
|
-
54259.216813453
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
*************** check missing interval value ******************;
|
|
114
|
-
_missingflag4Int_ = 0;
|
|
115
|
-
do _i_ = 1 to _numberOfIntVars_ until(_missingflag4Int_);
|
|
116
|
-
if missing( _intVars_67[_i_] ) then
|
|
117
|
-
_missingflag4Int_ = 1;
|
|
118
|
-
end;
|
|
119
|
-
|
|
120
|
-
if (_missingflag4Int_ = 1) then
|
|
121
|
-
substr(_WARN_, 1, 1) = 'M';
|
|
122
|
-
********** prepare interval variable values *********;
|
|
123
|
-
do _i_ = 1 to _numberOfIntVars_;
|
|
124
|
-
if missing (_intVars_67[_i_] ) then do;
|
|
125
|
-
_intVals_67[_i_] = .;
|
|
126
|
-
_intStdVals_67[_i_] = .;
|
|
127
|
-
end; else do;
|
|
128
|
-
if missing (_stdscaleInt_67[_i_] ) then do;
|
|
129
|
-
_intStdVals_67[_i_] = ( _intVars_67[_i_] - _stdcenterInt_67[_i_]);
|
|
130
|
-
end; else do;
|
|
131
|
-
_intStdVals_67[_i_] = ( _intVars_67[_i_] - _stdcenterInt_67[_i_])
|
|
132
|
-
/ _stdscaleInt_67[_i_];
|
|
133
|
-
end;
|
|
134
|
-
_intVals_67[_i_] = _intVars_67[_i_];
|
|
135
|
-
end;
|
|
136
|
-
end;
|
|
137
|
-
****************** find the closest cluster ******************;
|
|
138
|
-
if _missingflag4Int_ > 0 then
|
|
139
|
-
do;
|
|
140
|
-
_CLUSTER_ID_ = .;
|
|
141
|
-
_DISTANCE_ = .;
|
|
142
|
-
_minDistInt_ = .;
|
|
143
|
-
_STANDARDIZED_DISTANCE_ = .;
|
|
144
|
-
end;
|
|
145
|
-
else
|
|
146
|
-
do;
|
|
147
|
-
_CLUSTER_ID_ = .;
|
|
148
|
-
_minDist_ = 8.988465674E307;
|
|
149
|
-
do _i_=1 to 4;
|
|
150
|
-
_intMindist2cntr_ = 0;
|
|
151
|
-
do _j_=1 to 4;
|
|
152
|
-
_dist_ = _intStdVals_67{_j_} - _stdcntrcoordsInt_67{_i_,_j_};
|
|
153
|
-
_dist_ = _dist_ ** 2;
|
|
154
|
-
_intMindist2cntr_ = _intMindist2cntr_ + _dist_;
|
|
155
|
-
end;
|
|
156
|
-
_intMindist2cntr_ = _intMindist2cntr_ ** 0.5;
|
|
157
|
-
if( _minDist_ > _intMindist2cntr_) then do;
|
|
158
|
-
_CLUSTER_ID_ = _i_;
|
|
159
|
-
_minDist_ = _intMindist2cntr_;
|
|
160
|
-
end;
|
|
161
|
-
_STANDARDIZED_DISTANCE_ = _minDist_;
|
|
162
|
-
end;
|
|
163
|
-
_DISTANCE_ = 8.988465674E307;
|
|
164
|
-
_i_ = _CLUSTER_ID_;
|
|
165
|
-
_intMindist2cntr_ = 0;
|
|
166
|
-
do _j_=1 to 4;
|
|
167
|
-
_dist_ = _intVals_67{_j_} - _cntrcoordsInt_67{_i_,_j_};
|
|
168
|
-
_dist_ = _dist_ ** 2;
|
|
169
|
-
_intMindist2cntr_ = _intMindist2cntr_ + _dist_;
|
|
170
|
-
end;
|
|
171
|
-
_intMindist2cntr_ = _intMindist2cntr_ ** 0.5;
|
|
172
|
-
_DISTANCE_ = _intMindist2cntr_;
|
|
173
|
-
end;
|
|
174
|
-
|
|
175
|
-
if (MISSING('_CLUSTER_ID_'n))then _CLUSTER_ID_ = -1; /*------------------------------------------*/
|
|
176
|
-
drop '_CLUSTER_ID_'n '_DISTANCE_'n '_WARN_'n '_STANDARDIZED_DISTANCE_'n;
|
|
177
|
-
'_CLUSTER_ID__67'n='_CLUSTER_ID_'n;
|
|
178
|
-
'_DISTANCE__67'n='_DISTANCE_'n;
|
|
179
|
-
'_WARN__67'n='_WARN_'n;
|
|
180
|
-
'_STANDARDIZED_DISTANCE__67'n='_STANDARDIZED_DISTANCE_'n;
|
|
181
|
-
/*------------------------------------------*/
|
|
1
|
+
/*--------------------------------------------------
|
|
2
|
+
The options statement below should be placed
|
|
3
|
+
before the data step when submitting this code.
|
|
4
|
+
--------------------------------------------------*/
|
|
5
|
+
/*options VALIDMEMNAME=EXTEND VALIDVARNAME=ANY;*/
|
|
6
|
+
/*------------------------------------------
|
|
7
|
+
Generated SAS Scoring Code
|
|
8
|
+
Date : 02Jul2019:21:19:56
|
|
9
|
+
Locale : en_US
|
|
10
|
+
Model Type : Cluster
|
|
11
|
+
Interval variable: SDOH_PMU(SDOH1 Physically Mentally Unhealthy)
|
|
12
|
+
Interval variable: SDOH_Per_Adults_Bachelors(SDOH2 Education)
|
|
13
|
+
Interval variable: SDOH_Unemployment_Rate(SDOH4 Unemployment Rate)
|
|
14
|
+
Interval variable: SDOH_Median_Household_Income(SDOH3 Median Household Income)
|
|
15
|
+
------------------------------------------*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
length _WARN_ $4;
|
|
19
|
+
label _WARN_ = 'Warnings';
|
|
20
|
+
label _CLUSTER_ID_ = 'Cluster ID';
|
|
21
|
+
label _DISTANCE_ = 'Distance to Centroid';
|
|
22
|
+
|
|
23
|
+
_i_ = 0;
|
|
24
|
+
_j_ = 0;
|
|
25
|
+
_k_ = 0;
|
|
26
|
+
_l_ = 0;
|
|
27
|
+
_dist_ = 0;
|
|
28
|
+
_minDist_ = 0;
|
|
29
|
+
_found_ = 0;
|
|
30
|
+
_unknown_ = 0;
|
|
31
|
+
_unknownflag_ = 0;
|
|
32
|
+
_intMindist2cntr_ = 0;
|
|
33
|
+
_missingflag4Int_ = 0;
|
|
34
|
+
_numberOfIntVars_ = 4;
|
|
35
|
+
_minDistInt_ = 0;
|
|
36
|
+
label _STANDARDIZED_DISTANCE_ = 'Standardized Distance to Centroid';
|
|
37
|
+
|
|
38
|
+
drop _i_;
|
|
39
|
+
drop _j_;
|
|
40
|
+
drop _k_;
|
|
41
|
+
drop _l_;
|
|
42
|
+
drop _dist_;
|
|
43
|
+
drop _minDist_;
|
|
44
|
+
drop _minDistInt_;
|
|
45
|
+
drop _unknown_;
|
|
46
|
+
drop _unknownflag_;
|
|
47
|
+
drop _found_;
|
|
48
|
+
drop _intMindist2cntr_;
|
|
49
|
+
drop _missingflag4Int_;
|
|
50
|
+
drop _numberOfIntVars_;
|
|
51
|
+
drop _minDistInt_;
|
|
52
|
+
|
|
53
|
+
array _intVals_67{4} _temporary_;
|
|
54
|
+
array _intStdVals_67{4} _temporary_;
|
|
55
|
+
array _intVars_67[4] _temporary_;
|
|
56
|
+
_intVars_67[1] =
|
|
57
|
+
SDOH_PMU;
|
|
58
|
+
_intVars_67[2] =
|
|
59
|
+
SDOH_Per_Adults_Bachelors;
|
|
60
|
+
_intVars_67[3] =
|
|
61
|
+
SDOH_Unemployment_Rate;
|
|
62
|
+
_intVars_67[4] =
|
|
63
|
+
SDOH_Median_Household_Income;
|
|
64
|
+
array _cntrcoordsInt_67{4,4} _temporary_ (
|
|
65
|
+
5.6752109618776
|
|
66
|
+
34.574068577069
|
|
67
|
+
5.5249572649573
|
|
68
|
+
65162.262238794
|
|
69
|
+
6.1728412355737
|
|
70
|
+
28.076500921419
|
|
71
|
+
8.4815044247788
|
|
72
|
+
50250.811599193
|
|
73
|
+
5.5563377592335
|
|
74
|
+
27.69585347275
|
|
75
|
+
3.586724137931
|
|
76
|
+
55456.199169472
|
|
77
|
+
7.1425816544567
|
|
78
|
+
23.193113163492
|
|
79
|
+
5.9483653846154
|
|
80
|
+
45013.481439879
|
|
81
|
+
);
|
|
82
|
+
array _stdcntrcoordsInt_67 {4,4} _temporary_ (
|
|
83
|
+
-0.545947986801
|
|
84
|
+
1.2465170251288
|
|
85
|
+
-0.140043320021
|
|
86
|
+
1.2424484776721
|
|
87
|
+
0.080847377302
|
|
88
|
+
-0.09555849286
|
|
89
|
+
1.0754374093924
|
|
90
|
+
-0.456774851619
|
|
91
|
+
-0.695675960102
|
|
92
|
+
-0.17418139437
|
|
93
|
+
-0.936879929639
|
|
94
|
+
0.1364012391051
|
|
95
|
+
1.3022939633885
|
|
96
|
+
-1.104224427884
|
|
97
|
+
0.0340260867236
|
|
98
|
+
-1.053590936451
|
|
99
|
+
);
|
|
100
|
+
array _stdscaleInt_67 {4} _temporary_ (
|
|
101
|
+
0.7939278147152
|
|
102
|
+
4.8414322208822
|
|
103
|
+
2.4324097357342
|
|
104
|
+
8775.4507500947
|
|
105
|
+
);
|
|
106
|
+
array _stdcenterInt_67 {4} _temporary_ (
|
|
107
|
+
6.1086542539869
|
|
108
|
+
28.539140887732
|
|
109
|
+
5.8656
|
|
110
|
+
54259.216813453
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
*************** check missing interval value ******************;
|
|
114
|
+
_missingflag4Int_ = 0;
|
|
115
|
+
do _i_ = 1 to _numberOfIntVars_ until(_missingflag4Int_);
|
|
116
|
+
if missing( _intVars_67[_i_] ) then
|
|
117
|
+
_missingflag4Int_ = 1;
|
|
118
|
+
end;
|
|
119
|
+
|
|
120
|
+
if (_missingflag4Int_ = 1) then
|
|
121
|
+
substr(_WARN_, 1, 1) = 'M';
|
|
122
|
+
********** prepare interval variable values *********;
|
|
123
|
+
do _i_ = 1 to _numberOfIntVars_;
|
|
124
|
+
if missing (_intVars_67[_i_] ) then do;
|
|
125
|
+
_intVals_67[_i_] = .;
|
|
126
|
+
_intStdVals_67[_i_] = .;
|
|
127
|
+
end; else do;
|
|
128
|
+
if missing (_stdscaleInt_67[_i_] ) then do;
|
|
129
|
+
_intStdVals_67[_i_] = ( _intVars_67[_i_] - _stdcenterInt_67[_i_]);
|
|
130
|
+
end; else do;
|
|
131
|
+
_intStdVals_67[_i_] = ( _intVars_67[_i_] - _stdcenterInt_67[_i_])
|
|
132
|
+
/ _stdscaleInt_67[_i_];
|
|
133
|
+
end;
|
|
134
|
+
_intVals_67[_i_] = _intVars_67[_i_];
|
|
135
|
+
end;
|
|
136
|
+
end;
|
|
137
|
+
****************** find the closest cluster ******************;
|
|
138
|
+
if _missingflag4Int_ > 0 then
|
|
139
|
+
do;
|
|
140
|
+
_CLUSTER_ID_ = .;
|
|
141
|
+
_DISTANCE_ = .;
|
|
142
|
+
_minDistInt_ = .;
|
|
143
|
+
_STANDARDIZED_DISTANCE_ = .;
|
|
144
|
+
end;
|
|
145
|
+
else
|
|
146
|
+
do;
|
|
147
|
+
_CLUSTER_ID_ = .;
|
|
148
|
+
_minDist_ = 8.988465674E307;
|
|
149
|
+
do _i_=1 to 4;
|
|
150
|
+
_intMindist2cntr_ = 0;
|
|
151
|
+
do _j_=1 to 4;
|
|
152
|
+
_dist_ = _intStdVals_67{_j_} - _stdcntrcoordsInt_67{_i_,_j_};
|
|
153
|
+
_dist_ = _dist_ ** 2;
|
|
154
|
+
_intMindist2cntr_ = _intMindist2cntr_ + _dist_;
|
|
155
|
+
end;
|
|
156
|
+
_intMindist2cntr_ = _intMindist2cntr_ ** 0.5;
|
|
157
|
+
if( _minDist_ > _intMindist2cntr_) then do;
|
|
158
|
+
_CLUSTER_ID_ = _i_;
|
|
159
|
+
_minDist_ = _intMindist2cntr_;
|
|
160
|
+
end;
|
|
161
|
+
_STANDARDIZED_DISTANCE_ = _minDist_;
|
|
162
|
+
end;
|
|
163
|
+
_DISTANCE_ = 8.988465674E307;
|
|
164
|
+
_i_ = _CLUSTER_ID_;
|
|
165
|
+
_intMindist2cntr_ = 0;
|
|
166
|
+
do _j_=1 to 4;
|
|
167
|
+
_dist_ = _intVals_67{_j_} - _cntrcoordsInt_67{_i_,_j_};
|
|
168
|
+
_dist_ = _dist_ ** 2;
|
|
169
|
+
_intMindist2cntr_ = _intMindist2cntr_ + _dist_;
|
|
170
|
+
end;
|
|
171
|
+
_intMindist2cntr_ = _intMindist2cntr_ ** 0.5;
|
|
172
|
+
_DISTANCE_ = _intMindist2cntr_;
|
|
173
|
+
end;
|
|
174
|
+
|
|
175
|
+
if (MISSING('_CLUSTER_ID_'n))then _CLUSTER_ID_ = -1; /*------------------------------------------*/
|
|
176
|
+
drop '_CLUSTER_ID_'n '_DISTANCE_'n '_WARN_'n '_STANDARDIZED_DISTANCE_'n;
|
|
177
|
+
'_CLUSTER_ID__67'n='_CLUSTER_ID_'n;
|
|
178
|
+
'_DISTANCE__67'n='_DISTANCE_'n;
|
|
179
|
+
'_WARN__67'n='_WARN_'n;
|
|
180
|
+
'_STANDARDIZED_DISTANCE__67'n='_STANDARDIZED_DISTANCE_'n;
|
|
181
|
+
/*------------------------------------------*/
|
|
182
182
|
run;
|